在.Net进程中,只有一个托管线程池。我们可以根据需要通过公共属性设置最小和最大线程数。
在.Net 中,我们还可以Parallel.ForEach从后台的托管线程池中获取线程。
我们Parallel.ForEach还可以设置MaxDegreeOfParallelism限制最大线程数。
我有两个Parallel.ForEach并行运行。一个MaxDegreeOfParallelism设置为 3,另一个设置为 7。
我的问题是:我的两个Parallel.ForEach循环是否在幕后使用相同的线程池。如果是,如何Parallel.ForEach限制线程MaxDegreeOfParallelism。多个
Parallel.ForEach循环和一个托管线程池如何协同工作?如果您能在我深入了解 .net core 源代码之前提供高级解释或一些指示,那将会非常有帮助。
.net c# multithreading task-parallel-library parallel.foreach