Teilen über


Process.ProcessorAffinity Eigenschaft

Definition

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.

Der Prozess Id war nicht verfügbar.

- oder -

Der Prozess wurde beendet.

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

Gilt für: