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 Ausführung der Threads in diesem Prozess geplant werden kann, oder legt diese fest.
public:
property IntPtr ProcessorAffinity { IntPtr get(); void set(IntPtr value); };
public IntPtr ProcessorAffinity { get; set; }
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
[System.Runtime.Versioning.SupportedOSPlatform("linux")]
public IntPtr ProcessorAffinity { get; set; }
member this.ProcessorAffinity : nativeint with get, set
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
[<System.Runtime.Versioning.SupportedOSPlatform("linux")>]
member this.ProcessorAffinity : nativeint with get, set
Public Property ProcessorAffinity As IntPtr
Eigenschaftswert
nativeint
Eine Bitmaske, die angibt, auf welchen Prozessoren die Threads im zugeordneten Prozess ausgeführt werden können. Der Standardwert hängt von der Anzahl der Prozessoren des Computers ab. Der Standardwert ist 2 n -1, wobei n die Anzahl der Prozessoren ist.
- Attribute
Ausnahmen
Es konnten keine ProcessorAffinity-Informationen festgelegt oder von der zugeordneten Prozessressource abgerufen werden.
- oder -
Die Prozess-ID oder das Prozesshandle ist 0 (null). (Der Prozess wurde nicht gestartet.)
Sie versuchen, auf die ProcessorAffinity-Eigenschaft für einen Prozess zuzugreifen, der 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 bei jeder Migration der Prozessorcache neu geladen wird. Bei hohen Systemlasten kann die Angabe, welcher Prozessor einen bestimmten Thread ausführen soll, die Leistung verbessern, indem die Häufigkeit des erneuten Ladens des Prozessorcaches verringert wird. Die Zuordnung zwischen einem Prozessor und einem Thread wird als Prozessoraffinität bezeichnet.
Jeder Prozessor wird als Bit dargestellt. Bit 0 stellt einen Prozessor, 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 0 (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 die für die Auswahl geeigneten Prozessoren angibt.
Die folgende Tabelle zeigt eine Auswahl von ProcessorAffinity Werten für ein System mit acht Prozessoren.
Bitmaske | Binärwert | Berechtigte Prozessoren |
---|---|---|
0x0001 | 00000000 00000001 | 1 |
0x0003 | 00000000 00000011 | 1 und 2 |
0x0007 | 00000000 00000111 | Die erste, die zweite und die dritte Antwort sind richtig. |
0x0009 | 00000000 00001001 | 1 und 4 |
0x007F | 00000000 01111111 | 1, 2, 3, 4, 5, 6 und 7 |