从这里说
"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)
| 归档时间: |
|
| 查看次数: |
356 次 |
| 最近记录: |