Delphi threadvar是否适用于Parallel.For?

jus*_*tyy 11 delphi

这里

"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;
Run Code Online (Sandbox Code Playgroud)

Dav*_*nan 7

你当然可以使用threadvarPPL代码.在内部,PPL代码位于系统线程库的顶部,因此threadvar可以正常工作.