繁体   English   中英

使用多核(-thread)处理器进行FOR循环

[英]Using Multi-core (-thread) processor for FOR loop

我有一个简单的循环:

for (int i = 1; i <= 8; i++)
{
    DoSomething(i);
}
int nopt = 8; //number of processor threads

我想在处理器线程1中做DoSomething(1)
线程2中的DoSomething(2)
...
线程8中的DoSomething(8)

可能吗? 如果是的话怎么样?

谢谢你的回答。

你可以试试Parallel.For

  int nopt = 8;

  ParallelOptions po = new ParallelOptions() {
    MaxDegreeOfParallelism = nopt,
  };

  // 9 is exclusive when you want i <= 8
  Parallel.For(1, 9, po, i => DoSomething(i));

PLinq (Parallel Linq)是另一种选择:

  Enumerable
    .Range(1, 8)
    .AsParallel()
    .WithDegreeOfParallelism(nopt)
    .ForAll(i => DoSomething(i));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM