Process.ProcessorAffinity Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die Prozessoren ab, auf denen die Threads in diesem Prozess ausgeführt werden können, oder legt sie fest.
public:
property IntPtr ProcessorAffinity { IntPtr get(); void set(IntPtr value); };
public IntPtr ProcessorAffinity { get; set; }
member this.ProcessorAffinity : nativeint with get, set
Public Property ProcessorAffinity As IntPtr
Eigenschaftswert
nativeint
Eine Bitmaske, die die Prozessoren darstellt, auf denen die Threads im zugeordneten Prozess ausgeführt werden können. Der Standardwert hängt von der Anzahl der Prozessoren auf dem Computer ab. Der Standardwert ist 2 n -1, wobei n die Anzahl der Prozessoren ist.
Ausnahmen
ProcessorAffinity Informationen konnten nicht aus der zugeordneten Prozessressource festgelegt oder abgerufen werden.
-oder-
Der Prozessbezeichner oder Prozesshandle ist null. (Der Prozess wurde nicht gestartet.)
Sie versuchen, auf die Eigenschaft für einen Prozess zuzugreifen, der ProcessorAffinity auf einem Remotecomputer ausgeführt wird. Diese Eigenschaft ist nur für Prozesse verfügbar, die auf dem lokalen Computer ausgeführt werden.
Hinweise
Der von dieser Eigenschaft zurückgegebene Wert stellt die zuletzt aktualisierte Affinität des Prozesses dar. Um die aktuellste Affinität zu erhalten, müssen Sie zuerst die Methode aufrufen Refresh() .
In Windows 2000 und höher kann ein Thread in einem Prozess von Prozessor zu Prozessor migrieren, wobei jede Migration den Prozessorcache neu lädt. Bei hohen Systemlasten kann die Angabe, welcher Prozessor einen bestimmten Thread ausführen soll, die Leistung verbessern, indem die Anzahl der neu geladenen Prozessorcaches reduziert wird. Die Zuordnung zwischen einem Prozessor und einem Thread wird als Prozessoraffinität bezeichnet.
Jeder Prozessor wird als Bit dargestellt. Bit 0 ist Prozessor 1, Bit 1 ist Prozessor 2 usw. Wenn Sie ein Bit auf den Wert 1 festlegen, wird der entsprechende Prozessor für die Threadzuweisung ausgewählt. Wenn Sie den ProcessorAffinity Wert auf Null festlegen, legen die Planungsalgorithmen des Betriebssystems die Affinität des Threads fest. Wenn der ProcessorAffinity Wert auf einen beliebigen Wert ungleich Null festgelegt ist, wird der Wert als Bitmaske interpretiert, die diese Prozessoren angibt, die für die Auswahl berechtigt sind.
Die folgende Tabelle zeigt eine Auswahl von ProcessorAffinity Werten für ein Achtprozessorsystem.
| Bitmaske | Binärwert | Berechtigte Prozessoren |
|---|---|---|
| 0x0001 | 00000000 00000001 | 1 |
| 0x0003 | 00000000 00000011 | 1 und 2 |
| 0x0007 | 00000000 00000111 | 1, 2 und 3 |
| 0x0009 | 00000000 00001001 | 1 und 4 |
| 0x007F | 00000000 01111111 | 1, 2, 3, 4, 5, 6 und 7 |