ProcessThread.IdealProcessor Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Устанавливает предпочтительный процессор для выполнения этого потока.
public:
property int IdealProcessor { void set(int value); };
public int IdealProcessor { set; }
[System.ComponentModel.Browsable(false)]
public int IdealProcessor { set; }
member this.IdealProcessor : int
[<System.ComponentModel.Browsable(false)>]
member this.IdealProcessor : int
Public Property IdealProcessor As Integer
Значение свойства
Предпочтительный процессор для потока, используемый при планировании потока системой для определения процессора, на котором будет выполняться поток.
- Атрибуты
Исключения
Системе не удалось задать поток для запуска на указанном процессоре.
Данный процесс выполняется на удаленном компьютере.
Примеры
В следующем примере показано, как задать IdealProcessor для свойства экземпляра Блокнота первый процессор.
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
Комментарии
Значение IdealProcessor отсчитывается от нуля. Иными словами, чтобы задать сходство потоков для первого процессора, задайте для свойства нулевое значение.
Система по возможности планирует потоки на предпочитаемых процессорах.
Поток процесса может выполнять миграцию от процессора к процессору, при этом каждая миграция перезагружается кэш процессора. Указание процессора для потока может повысить производительность при больших нагрузках системы за счет уменьшения количества перезагрузок кэша процессора.