Поделиться через


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 равно нулю. Другими словами, чтобы задать сходство потоков для первого процессора, задайте для свойства нулевое значение.

Система планирует потоки на предпочитаемых процессорах по возможности.

Поток обработки может перенестися с процессора на процессор, при каждой перезагрузке кэша процессора каждая миграция. Указание процессора для потока может повысить производительность при тяжелых нагрузках системы, уменьшая количество перезагрузок кэша процессора.

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