我运行一个多线程循环的执行过程中更改parallelOptions.MaxDegreeOfParallelism:是否有可能一个Parallel.ForEach
protected ParallelOptions parallelOptions = new ParallelOptions();
parallelOptions.MaxDegreeOfParallelism = 2;
Parallel.ForEach(items, parallelOptions, item =>
{
// Loop code here
});
我想并行循环的执行期间改变parallelOptions.MaxDegreeOfParallelism减少或增加一些线程。
parallelOptions.MaxDegreeOfParallelism = 5;
它似乎并没有增加线程。有没有人有任何想法?
你能解释一下你为什么想这样做吗?如果需要的话,它已经增加了自己的线程数,直到达到指定的最大值,或者如果合适的话,它将使用更少的线程数。 – 2010-09-13 23:02:06
主要用于在共享服务器上使用太多资源时启动应用程序。我得到的服务器运行在100%,这降低了服务器上其他应用程序的响应度。 – 2010-09-13 23:04:59
这是一个CPU绑定问题或其他“资源”,如磁盘? – 2010-09-13 23:39:40