Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Propiedad ProcessThread.IdealProcessor

 

Publicado: octubre de 2016

Establece el procesador preferido para ejecutar este subproceso.

Espacio de nombres:   System.Diagnostics
Ensamblado:  System (en System.dll)

[BrowsableAttribute(false)]
public int IdealProcessor { set; }

Valor de propiedad

Type: System.Int32

El procesador preferido para el subproceso que se utiliza cuando programe los subprocesos, para determinar qué procesador para ejecutar el subproceso en el sistema.

Exception Condition
Win32Exception

El sistema no pudo establecer el subproceso para iniciar en el procesador especificado.

PlatformNotSupportedException

La plataforma es Windows 98 o Windows Millennium Edition.

NotSupportedException

El proceso está en un equipo remoto.

El IdealProcessor valor está basado en cero. En otras palabras, para establecer la afinidad del subproceso del primer procesador, establezca la propiedad en cero.

El sistema programa los subprocesos en los procesadores preferidos siempre que sea posible.

Un subproceso puede migrar de un procesador a otro, con cada migración vuelve a cargar la caché del procesador. Especifica un procesador para un subproceso puede mejorar el rendimiento con cargas elevadas reduciendo el número de veces que se vuelve a cargar la caché del procesador.

En el ejemplo siguiente se muestra cómo establecer el IdealProcessor propiedad para una instancia del Bloc de notas para el primer procesador.

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;
        }
    }
}

.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: