ProcessThread.ProcessorAffinity Свойство

Определение

Задает процессоры, на которых может выполняться соответствующий поток.Sets the processors on which the associated thread can run.

public:
 property IntPtr ProcessorAffinity {  void set(IntPtr value); };
public IntPtr ProcessorAffinity { set; }
[System.ComponentModel.Browsable(false)]
public IntPtr ProcessorAffinity { set; }
member this.ProcessorAffinity : nativeint
Public Property ProcessorAffinity As IntPtr

Значение свойства

Объект IntPtr, указывающий на набор битов, каждый из которых представляет процессор, где может выполняться поток.An IntPtr that points to a set of bits, each of which represents a processor that the thread can run on.

Атрибуты

Исключения

Не удается задать сходство процессоров.The processor affinity could not be set.

Данный процесс выполняется на удаленном компьютере.The process is on a remote computer.

Примеры

В следующем примере показано, как установить свойство ProcessorAffinity для экземпляра Notepad на первый процессор.The following example shows how to set the ProcessorAffinity property for an instance of Notepad to the first processor.

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

Комментарии

Сходство процессоров потока — это набор процессоров, к которым он имеет отношение.The processor affinity of a thread is the set of processors it has a relationship to. Иными словами, они могут быть запланированы на выполнение.In other words, those it can be scheduled to run on.

ProcessorAffinity представляет каждый процессор как один бит.ProcessorAffinity represents each processor as a bit. Бит 0 представляет процессор один, бит 1 представляет процессор два и т. д.Bit 0 represents processor one, bit 1 represents processor two, and so on. В следующей таблице показано подмножество возможных ProcessorAffinity для системы из четырех процессоров.The following table shows a subset of the possible ProcessorAffinity for a four-processor system.

Значение свойства (в шестнадцатеричном формате)Property value (in hexadecimal) Допустимые процессорыValid processors
0x00010x0001 11
0x00020x0002 22
0x00030x0003 1 или 21 or 2
0x00040x0004 33
0x00050x0005 1 или 31 or 3
0x00070x0007 1, 2 или 31, 2, or 3
0x000F0x000F 1, 2, 3 или 41, 2, 3, or 4

Можно также указать один предпочтительный процессор для потока, задав свойство IdealProcessor.You can also specify the single, preferred processor for a thread by setting the IdealProcessor property. Поток процесса может выполнять миграцию с процессора на процессор, при этом каждый процесс миграции перезагружает кэш процессора.A process thread can migrate from processor to processor, with each migration reloading the processor cache. Указание процессора для потока может повысить производительность при высоких нагрузках системы, уменьшая количество раз, когда кэш процессора перезагружается.Specifying a processor for a thread can improve performance under heavy system loads by reducing the number of times the processor cache is reloaded.

Применяется к

Дополнительно