Parallel.ForEach <t>的一些项在ThreadPool上运行,有些则不运行

时间:2016-01-21 01:49:15

标签: c# multithreading task-parallel-library parallel.foreach

我有一个像这样的简单算法:

Parallel.ForEach(myList, new ParallelOptions() { MaxDegreeOfParallelism = 4 } ,(job) => job.doSomething());  

myList是List<MyType>

MyType已无效DoSomething()

DoSomething内我检查Thread.CurrentThread.IsThreadPoolThread。 有些线程不是“ThreadPooled”;

1 个答案:

答案 0 :(得分:4)

Parallel中定义的函数也将使用您调用函数的线程作为工作线程之一。很可能是非线程池线程,其中作业在您从{。}}调用的线程上完成。