在.NET3.5中优化独立的foreach迭代

Mat*_*att 2 .net optimization multithreading .net-3.5

让我说我有

foreach(int x in xs[]) // xs is an array of int
{
x++;
}
Run Code Online (Sandbox Code Playgroud)

每次通过foreach是独立于其他人.是否有一种快速方法可以指示CLR在单独的线程上执行每个操作或通过本机并行化来加快速度?

也许它已经知道这样做了.

我知道你我可以创建线程然后启动它们但是如果有一个我可以设置的属性或标志可以解决它会膨胀.

我的实际代码更复杂,但是每次迭代遍历foreach在迭代之间也没有效果.

就像是

[parallelize maxThreads=5]
foreach(int x in xs[]) // xs is an array of int
{
x++;
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*vey 12

你可以尝试的Parallel.For从任务并行库.如果您获得正确的粒度,这可能会非常有效.有关详细信息,请参阅以下文章:

优化多核机器的托管代码
http://msdn.microsoft.com/en-us/magazine/cc163340.aspx

可以从此页面下载 .NET 3.5 SP1的任务并行库.这是一个直接链接.