Condividi tramite


ProcessThread.IdealProcessor Proprietà

Definizione

Imposta il processore preferenziale su cui eseguire questo 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

Valore della proprietà

Il processore preferenziale del thread, utilizzato quando il sistema pianifica i thread, per determinare il processore su cui eseguirlo.

Attributi

Eccezioni

Il sistema non è stato in grado di impostare l'avvio del thread sul processore specificato.

Il processo è eseguito su un computer remoto.

Esempio

Nell'esempio seguente viene illustrato come impostare la IdealProcessor proprietà per un'istanza del Blocco note sul primo processore.

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

Commenti

Il IdealProcessor valore è in base zero. In altre parole, per impostare l'affinità di thread per il primo processore, impostare la proprietà su zero.

Il sistema pianifica i thread nei processori preferiti quando possibile.

Un thread di processo può eseguire la migrazione dal processore al processore, con ogni migrazione ricaricando la cache del processore. La specifica di un processore per un thread può migliorare le prestazioni in carichi di sistema elevati riducendo il numero di volte in cui viene ricaricata la cache del processore.

Si applica a