TPL -局部变量一次性初始化
本文关键字:初始化 一次性 局部变量 TPL | 更新日期: 2023-09-27 17:53:25
我有一个关于TPL的快速问题。我想为每个线程并行。对于一个只赋值一次且永远赋值的整数(在初始化时,不应该改变-特定于线程)。
我不能来任何工作,即使使用LocalStorage。
为例:4个线程,每个线程都有int localvar =初始化为{1,2,3,4},并且应该在所有for循环中保持相同的值
Many Thanks !
编辑运行
时 ParallelOptions options = new ParallelOptions();
options.MaxDegreeOfParallelism = 4
int ir = 0;
Parallel.For(0, 10, options, () => ir++, (index, s, n) =>
{
Console.WriteLine(n); return n;
}, n => { });
结果为n = ir = 7
使用一个接受本地init块的重载。它是专门为这个设计的:
int i = 0;
Parallel.For(0, 10, () => i++, (index, s, n) =>
{
Console.WriteLine(n); return n;
}, n => { });