¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
ThreadPriority (Enumeración)
Collapse the table of content
Expand the table of content
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

ThreadPriority (Enumeración)

Especifica la prioridad de programación de Thread.

Espacio de nombres:  System.Threading
Ensamblado:  mscorlib (en mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public enum ThreadPriority

Nombre de miembroDescripción
Compatible con XNA FrameworkAboveNormal Thread puede programarse después de los subprocesos con prioridad Highest y antes que los subprocesos con prioridad Normal.
Compatible con XNA FrameworkBelowNormal Thread puede programarse después de los subprocesos con prioridad Normal y antes que los subprocesos con prioridad Lowest.
Compatible con XNA FrameworkHighest Thread puede programarse antes que los subprocesos que tengan cualquier otra prioridad.
Compatible con XNA FrameworkLowest Thread puede programarse después de los subprocesos que tengan cualquier otra prioridad.
Compatible con XNA FrameworkNormal Thread puede programarse después de los subprocesos con prioridad AboveNormal y antes que los subprocesos con prioridad BelowNormal. Los subprocesos tienen prioridad Normal de forma predeterminada.

ThreadPriority define el conjunto de todos los valores posibles para la prioridad de un subproceso. Las prioridades de los subproceso especifican la prioridad relativa de un subproceso frente a otro.

Cada subproceso tiene asignada una prioridad. Los subprocesos creados en el motor en tiempo de ejecución tienen asignada inicialmente la prioridad Normal, mientras que los subprocesos creados fuera del motor en tiempo de ejecución conservan su prioridad anterior cuando entran en el motor en tiempo de ejecución. Para obtener y establecer la prioridad de un subproceso, hay que obtener acceso a su propiedad Priority.

La ejecución de los subprocesos se planea en función de su prioridad. El algoritmo de programación utilizado para determinar el orden de ejecución de los subprocesos varía en función de cada sistema operativo. El sistema operativo también puede ajustar la prioridad del subproceso de forma dinámica, en relación con el desplazamiento del foco de la interfaz de usuario entre segundo plano y primer plano.

La prioridad de un subproceso no afecta al estado del subproceso; el estado de un subproceso debe ser Running antes de que el sistema operativo pueda programarlo.

En el ejemplo de código siguiente se muestra el resultado de cambiar la prioridad de un subproceso. Se crean dos subprocesos y la prioridad de un subproceso se establece en BelowNormal. Ambos subprocesos incrementan una variable en un bucle while y se ejecutan durante un tiempo establecido.


using System;
using System.Threading;

class Test
{
    static void Main()
    {
        PriorityTest priorityTest = new PriorityTest();
        ThreadStart startDelegate = 
            new ThreadStart(priorityTest.ThreadMethod);

        Thread threadOne = new Thread(startDelegate);
        threadOne.Name = "ThreadOne";
        Thread threadTwo = new Thread(startDelegate);
        threadTwo.Name = "ThreadTwo";

        threadTwo.Priority = ThreadPriority.BelowNormal;
        threadOne.Start();
        threadTwo.Start();

        // Allow counting for 10 seconds.
        Thread.Sleep(10000);
        priorityTest.LoopSwitch = false;
    }
}

class PriorityTest
{
    bool loopSwitch;

    public PriorityTest()
    {
        loopSwitch = true;
    }

    public bool LoopSwitch
    {
        set{ loopSwitch = value; }
    }

    public void ThreadMethod()
    {
        long threadCount = 0;

        while(loopSwitch)
        {
            threadCount++;
        }
        Console.WriteLine("{0} with {1,11} priority " +
            "has a count = {2,13}", Thread.CurrentThread.Name, 
            Thread.CurrentThread.Priority.ToString(), 
            threadCount.ToString("N0")); 
    }
}


.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft