ProcessThread.ProcessorAffinity 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
設定可以執行相關執行緒的處理器。
public:
property IntPtr ProcessorAffinity { void set(IntPtr value); };
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public IntPtr ProcessorAffinity { set; }
public IntPtr ProcessorAffinity { set; }
[System.ComponentModel.Browsable(false)]
public IntPtr ProcessorAffinity { set; }
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
member this.ProcessorAffinity : nativeint
member this.ProcessorAffinity : nativeint
[<System.ComponentModel.Browsable(false)>]
member this.ProcessorAffinity : nativeint
Public Property ProcessorAffinity As IntPtr
屬性值
IntPtr
nativeint
指向一組位元的 IntPtr,其中每個位元表示執行緒可以在其上執行的處理器。
- 屬性
例外狀況
處理序相似性不能被設定。
處理序位於遠端電腦上。
範例
下列範例示範如何將記事本實例的 屬性設定 ProcessorAffinity 為第一個處理器。
using System;
using System.Diagnostics;
namespace ProcessThreadIdealProcessor
{
class Program
{
static void Main(string[] args)
{
// Make sure there is an instance of notepad running.
Process[] notepads = Process.GetProcessesByName("notepad");
if (notepads.Length == 0)
Process.Start("notepad");
ProcessThreadCollection threads;
//Process[] notepads;
// Retrieve the Notepad processes.
notepads = Process.GetProcessesByName("Notepad");
// Get the ProcessThread collection for the first instance
threads = notepads[0].Threads;
// Set the properties on the first ProcessThread in the collection
threads[0].IdealProcessor = 0;
threads[0].ProcessorAffinity = (IntPtr)1;
}
}
}
Imports System.Diagnostics
Class Program
Shared Sub Main(ByVal args() As String)
' Make sure there is an instance of notepad running.
Dim notepads As Process() = Process.GetProcessesByName("notepad")
If notepads.Length = 0 Then
Process.Start("notepad")
End If
Dim threads As ProcessThreadCollection
'Process[] notepads;
' Retrieve the Notepad processes.
notepads = Process.GetProcessesByName("Notepad")
' Get the ProcessThread collection for the first instance
threads = notepads(0).Threads
' Set the properties on the first ProcessThread in the collection
threads(0).IdealProcessor = 0
threads(0).ProcessorAffinity = CType(1, IntPtr)
End Sub
End Class
備註
線程的處理器親和性是其關聯性的處理器集。 換句話說,它可以排程執行。
ProcessorAffinity 表示每個處理器為位。 位 0 代表處理器 1、位 1 代表處理器二等等。 下表顯示四個處理器系統的可能 ProcessorAffinity 子集。
十六進位) 中的屬性值 ( | 有效的處理器 |
---|---|
0x0001 | 1 |
0x0002 | 2 |
0x0003 | 1 或 2 |
0x0004 | 3 |
0x0005 | 1 或 3 |
0x0007 | 1、2 或 3 |
0x000F | 1、2、3 或 4 |
您也可以藉由設定 IdealProcessor 屬性來指定線程的單一慣用處理器。 進程線程可以從處理器移轉至處理器,每個移轉都會重載處理器快取。 指定線程的處理器可以藉由減少處理器快取重載的次數,來改善大量系統負載下的效能。