Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Thread.Priority, propriété

Obtient ou définit une valeur indiquant la priorité de planification d'un thread.

Espace de noms :  System.Threading
Assembly :  mscorlib (dans mscorlib.dll)

public ThreadPriority Priority { get; set; }

Valeur de propriété

Type : System.Threading.ThreadPriority
Une des valeurs de ThreadPriority. La valeur par défaut est Normal.

ExceptionCondition
ThreadStateException

Le thread a atteint un état final, tel que Aborted.

ArgumentException

La valeur spécifiée pour une opération ensembliste n'est pas une valeur ThreadPriority valide.

N'importe laquelle des valeurs de priorité suivantes peut être assignée à un thread :

  • Highest

  • AboveNormal

  • Normal

  • BelowNormal

  • Lowest

Les systèmes d'exploitation ne sont pas tenus de respecter la priorité d'un thread.

L'exemple de code suivant illustre le résultat obtenu après la modification de la priorité d'un thread. Il crée deux threads et affecte à la priorité de l'un d'eux la valeur BelowNormal. Les deux threads incrémentent une variable dans une boucle while et s'exécutent pendant une durée déterminée.


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

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft