Подтвердить что ты не робот

Работает ли Delphi threadvar для Parallel.For?

из здесь он говорит

"Ключевое слово ThreadVar запускает набор определений переменных, которые используемый потоками. Каждому потоку присваивается отдельный экземпляр каждого переменную, тем самым избегая конфликтов данных и сохраняя поток независимость."

Так можно использовать в Parallel.For как это?

threadvar
    threadID: integer;

procedure TForm5.Button1Click(Sender: TObject);
var
 Tot: Integer;
begin
 TParallel.For(1, Max, procedure (I: Integer)
   begin
     threadID := i;  // each thread gets its own threadID?
     if IsPrime (threadID) then
       TInterlocked.Increment (Tot);
   end);
end;
4b9b3361

Ответ 1

Вы можете использовать threadvar с кодом PPL. Внутренне код PPL стоит поверх системных библиотек потоков, поэтому threadvar работает так, как вы ожидали.