也许我没有正确理解......所有并行类问题:(
但是从我现在阅读的内容来看,我了解到,当我使用 Parallel 时,我实际上会调动 threadPool 中存在的所有线程来执行某些任务/任务。
例如:
var arrayStrings = new string[1000];
Parallel.ForEach<string>(arrayStrings, someString =>
{
DoSomething(someString);
});
因此,在这种情况下,Parallel.ForEach 正在为“DoSomething”任务/任务调动 threadPool 中存在的所有线程。
但是调用 Parallel.ForEach 会创建任何新线程吗?
很明显,不会有 1000 个新线程。但是让我们假设有 1000 个新线程,在某些情况下 threadPool 释放它持有的所有线程,在这种情况下...... Parallel.ForEach 将创建任何新线程?