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
-
IntPtr
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 jede Migration den Prozessorcache neu lädt. Unter schweren Systemlasten kann angegeben werden, welcher Prozessor einen bestimmten Thread ausführen soll, indem die Anzahl der Zeiten reduziert wird, in denen der Prozessorcache neu geladen 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 einen Bit auf den Wert 1 festlegen, wird der entsprechende Prozessor für die Threadzuweisung ausgewählt. Wenn Sie den Wert auf Null festlegen, legen die Planungsalgorithmen des Betriebssystems die ProcessorAffinity Affinität des Threads fest. Wenn der Wert auf einen nichtzero-Wert festgelegt ist, wird der ProcessorAffinity Wert als Bitmask interpretiert, der diese Prozessoren angibt, die für die Auswahl berechtigt sind.
Die folgende Tabelle zeigt eine Auswahl von ProcessorAffinity Werten für ein Acht-Prozessor-System.
| 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 |