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.ProcessorAffinity

 

Publicado: octubre de 2016

Establece los procesadores en el que puede ejecutar el subproceso asociado.

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

[BrowsableAttribute(false)]
public IntPtr ProcessorAffinity { set; }

Valor de propiedad

Type: System.IntPtr

Un IntPtr que apunta a un conjunto de bits, cada uno de los cuales representa un procesador que se puede ejecutar el subproceso.

Exception Condition
Win32Exception

No se pudo establecer la afinidad del procesador.

PlatformNotSupportedException

La plataforma es Windows 98 o Windows Millennium Edition.

NotSupportedException

El proceso está en un equipo remoto.

La afinidad del procesador de un subproceso es el conjunto de procesadores que tiene una relación. En otras palabras, los que se puede programar para ejecutarse en.

ProcessorAffinity representa cada procesador como un bit. Bit 0 representa al procesador uno, el bit 1 representa al procesador dos y así sucesivamente. En la tabla siguiente se muestra un subconjunto de los posibles ProcessorAffinity para un sistema con cuatro procesadores.

Valor de la propiedad (en hexadecimal)

Procesadores válidos

0 x 0001

1

0 x 0002

2

0 x 0003

1 o 2

0 x 0004

3

0x0005

1 o 3

0 x 0007

1, 2 o 3

0x000F

1, 2, 3 o 4

También puede especificar un solo procesador preferido para un subproceso estableciendo la IdealProcessor propiedad. 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 ProcessorAffinity 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: