增加线程数量对于循环C#?

时间:2016-11-09 17:51:54

标签: c# multithreading

我希望能够在for循环中使用更多线程。

为什么因为每个循环都在运行proccess,它需要等待退出。 目前看起来我的CPU几乎没有接近100%,而且大部分内容都是等待这些过程。

我的代码现在非常像这样:

                    Parallel.For(0, count, i =>
                {
                   ........

                });

之后所有内容都会同步,因此每次说出的线程数并不重要。 他们不需要在运行期间同步数据,也不需要在这方面自由运行。

感谢。

编辑:

好的,我试着寻找实际上让它变慢的东西。 由于某种原因它确实需要CPU, 它只是没有显示它,可能导致它被运行"控制台窗口主机"?

在这种情况下,限制确实是CPU,该死的-_-。 不过,为什么它不会显示为正常过程?

它基本上是:

    using (Process pRocess = new Process())
   {
      pRocess .StartInfo.Filename = "somefile.exe";
       work work and also, maybe more work.
        pRocess.WaitForExit();
   }

1 个答案:

答案 0 :(得分:2)

也许你的意思是

Parallel
   .For(0, 10, new ParallelOptions() {MaxDegreeOfParallelism = 10}, 
   i =>{ Console.WriteLine(Thread.CurrentThread.ManagedThreadId); });

但请注意,这不是线程数。更多信息https://msdn.microsoft.com/en-us/library/system.threading.tasks.paralleloptions.maxdegreeofparallelism%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396