Parallel.ForEach<T> 的某些项目在 ThreadPool 上运行,有些则不

Some items of Parallel.ForEach<T> runs on ThreadPool, some doesn't

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

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

myList 是一个 List<MyType>.

MyType 无效 DoSomething().

里面 DoSomething 我检查 Thread.CurrentThread.IsThreadPoolThread。 有些主题不是 "ThreadPooled";

Parallel 中定义的函数还将使用您调用该函数的线程作为工作线程之一。最有可能的是非线程池线程,其中作业在您调用 Parallel.ForEach 的线程上完成。