ProcessThread.IdealProcessor Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Define o processador preferencial para execução desse thread.
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
Valor da propriedade
O processador preferencial para o thread, usado quando o sistema agenda threads, para determinar em qual processador o thread deve ser executado.
- Atributos
Exceções
O sistema não pôde definir o thread para ser iniciado no processador especificado.
O processador está em um computador remoto.
Exemplos
O exemplo a seguir demonstra como definir a IdealProcessor propriedade de uma instância do Bloco de Notas para o primeiro processador.
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
Comentários
O IdealProcessor valor é baseado em zero. Em outras palavras, para definir a afinidade de thread para o primeiro processador, defina a propriedade como zero.
O sistema agenda threads em seus processadores preferenciais sempre que possível.
Um thread de processo pode migrar do processador para o processador, com cada migração recarregando o cache do processador. Especificar um processador para um thread pode melhorar o desempenho em cargas pesadas do sistema, reduzindo o número de vezes que o cache do processador é recarregado.