Sie können in .Net nicht garantieren, dass zwei Thread
auf zwei separaten Kernen laufen. In der Tat, können Sie auch nicht garantieren, dass man Thread
auf nur einen Kern laufen (!) .
Dies ist darauf zurückzuführen, dass verwaltete Threads nicht mit Betriebssystem-Threads identisch sind - ein einziger verwalteter Thread verwendet möglicherweise mehrere Betriebssystem-Threads, um dies zu unterstützen. In C # gehen Sie immer nur direkt mit verwalteten Thread
s um (zumindest ohne auf p / invoke zurückgreifen zu müssen, um die WinAPI-Threading-Funktionen aufzurufen, die Sie niemals tun sollten) .
Die .Net- und Windows-Thread-Scheduler sind jedoch sehr gut in der Lage, da sie nicht zwei Threads auf einem einzelnen Core ausführen, während ein zweiter Core vollständig inaktiv ist. Im Allgemeinen brauchen Sie sich darum keine Sorgen zu machen.