dem Code auf dem MSDN article über ParallelOptions.MaxDegreeOfParallelism, habe ich versucht, die folgende ...ParallelOptions.MaxDegreeOfParallelism nichts zu tun
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);
});
jedoch an den Thread-IDs suchen ausgegeben wird, kann ich sehen, dass es doesn mache keinen Unterschied, wenn ich MaxDegreeOfParallelism einstelle oder nicht. Wenn ich meinen CPU-Monitor ansehe, kann ich alle Kerne in Aktion sehen, selbst wenn ich MaxDegreeOfParallelism auf 2 setze.
Fehle ich den Punkt hier? Ich dachte, die Idee wäre, die Anzahl der Threads zu begrenzen?
Als Jen in 2 Minuten vor Ihnen kam, ich will, dass als Antwort markieren, aber trotzdem danke, wie bei Ihnen ebenso klar war. Bitte beachten Sie meinen Kommentar dort, warum ich diesen ziemlich offensichtlichen Punkt verpasst habe! –
@AvrohomYisroel Es ist eigentlich das Gegenteil, vcsjones schlug mich dazu ;-) – Jens
@Jens, oops, du hast Recht. In diesem Fall werde ich dies als die Antwort stattdessen markieren. Danke euch beiden trotzdem! –