Nehmen wir an, ich hätte ein Programm in C#, das etwas rechenintensives macht, wie das Kodieren einer Liste von WAV-Dateien in MP3s. Normalerweise würde ich die Dateien einzeln kodieren, aber ich wollte, dass das Programm herausfindet, wie viele CPU-Kerne ich habe und auf jedem Kern einen Kodierungsthread startet. Wenn ich das Programm also auf einer Quad-Core-CPU ausführe, stellt das Programm fest, dass es sich um eine Quad-Core-CPU handelt, findet heraus, dass es vier Kerne gibt, mit denen es arbeiten kann, und legt dann vier Threads für die Codierung an, von denen jeder auf einer eigenen CPU läuft. Wie würde ich das machen?
Und wäre das anders, wenn die Kerne auf mehrere physische CPUs verteilt wären? Wenn ich also eine Maschine mit zwei Quad-Core-CPUs hätte, gibt es dann irgendwelche besonderen Überlegungen oder werden die acht Kerne auf den beiden Dies in Windows als gleichwertig betrachtet?