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
的线程上完成。
我有一个像这样的简单算法:
Parallel.ForEach(myList, new ParallelOptions() { MaxDegreeOfParallelism = 4 } ,(job) => job.doSomething());
myList 是一个 List<MyType>
.
MyType 无效 DoSomething()
.
里面 DoSomething
我检查 Thread.CurrentThread.IsThreadPoolThread
。
有些主题不是 "ThreadPooled";
Parallel
中定义的函数还将使用您调用该函数的线程作为工作线程之一。最有可能的是非线程池线程,其中作业在您调用 Parallel.ForEach
的线程上完成。