gpt4 book ai didi

c# - ParallelOptions.MaxDegreeOfParallelism不做任何事情

转载 作者:太空宇宙 更新时间:2023-11-03 17:49:36 27 4
gpt4 key购买 nike

使用MSDN article上有关ParallelOptions.MaxDegreeOfParallelism的代码,我尝试了以下操作...

ParallelOptions po = new ParallelOptions {
MaxDegreeOfParallelism = 2
};
Parallel.ForEach(files, (currentFile) => {
String filename = System.IO.Path.GetFileName(currentFile);
Bitmap bitmap = new Bitmap(currentFile);
bitmap.RotateFlip(RotateFlipType.Rotate180FlipNone);
bitmap.Save(Path.Combine(newDir, filename));
Console.WriteLine("Processing {0} on thread {1}", filename, Thread.CurrentThread.ManagedThreadId);
});


但是,查看正在输出的线程ID,我可以看到,无论是否设置MaxDegreeOfParallelism,它都没有任何区别。查看我的CPU监视器,即使将MaxDegreeOfParallelism设置为2,我也可以看到所有运行中的内核。

我在这里想念吗?我以为是限制线程数?

最佳答案

看起来您没有将po传递给Parallel.ForEach,因此它仅使用默认值。使用Parallel.ForEach中的an overload,可以让您将ParallelOptions传递到其中:

Parallel.ForEach(files, po, (currentFile) => {

关于c# - ParallelOptions.MaxDegreeOfParallelism不做任何事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36285914/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com