Thread Classe

Définition

Crée et contrôle un thread, définit sa priorité et obtient son état.

public ref class Thread sealed : System::Runtime::ConstrainedExecution::CriticalFinalizerObject
public ref class Thread sealed
public ref class Thread sealed : System::Runtime::InteropServices::_Thread
public ref class Thread sealed : System::Runtime::ConstrainedExecution::CriticalFinalizerObject, System::Runtime::InteropServices::_Thread
public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Thread
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Thread : System.Runtime.InteropServices._Thread
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.Runtime.InteropServices._Thread
type Thread = class
    inherit CriticalFinalizerObject
[<System.Runtime.InteropServices.ComVisible(true)>]
type Thread = class
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Thread = class
    interface _Thread
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Thread = class
    inherit CriticalFinalizerObject
    interface _Thread
Public NotInheritable Class Thread
Inherits CriticalFinalizerObject
Public NotInheritable Class Thread
Public NotInheritable Class Thread
Implements _Thread
Public NotInheritable Class Thread
Inherits CriticalFinalizerObject
Implements _Thread
Héritage
Héritage
Thread
Attributs
Implémente

Remarques

Pour plus d’informations sur cette API, consultez Remarques supplémentaires sur l’API pour thread.

Constructeurs

Thread(ParameterizedThreadStart)

Initialise une nouvelle instance de la classe Thread, en spécifiant un délégué qui permet à un objet d'être passé au thread quand le thread est démarré.

Thread(ParameterizedThreadStart, Int32)

Initialise une nouvelle instance de la classe Thread, en spécifiant un délégué qui permet à un objet d'être passé au thread quand le thread est démarré et en spécifiant la taille de pile maximale pour le thread.

Thread(ThreadStart)

Initialise une nouvelle instance de la classe Thread.

Thread(ThreadStart, Int32)

Initialise une nouvelle instance de la classe Thread, en spécifiant la taille de pile maximale pour le thread.

Propriétés

ApartmentState
Obsolète.
Obsolète.

Obtient ou définit l'état de cloisonnement de ce thread.

CurrentContext

Obtient le contexte actuel dans lequel le thread s'exécute.

CurrentCulture

Obtient ou définit la culture du thread actuel.

CurrentPrincipal

Obtient ou définit le principal actuel du thread (pour une sécurité basée sur les rôles).

CurrentThread

Obtient le thread en cours d'exécution.

CurrentUICulture

Obtient ou définit la culture actuelle utilisée par le Gestionnaire de ressources pour rechercher des ressources spécifiques à la culture au moment de l'exécution.

ExecutionContext

Obtient un objet ExecutionContext qui contient des informations relatives aux divers contextes du thread actuel.

IsAlive

Obtient une valeur indiquant l'état de l'exécution du thread actuel.

IsBackground

Obtient ou définit une valeur indiquant si le thread est un thread d'arrière-plan ou non.

IsThreadPoolThread

Obtient une valeur indiquant si un thread appartient au pool de threads managés ou non.

ManagedThreadId

Obtient un identificateur unique pour le thread managé actuel.

Name

Obtient ou définit le nom du thread.

Priority

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

ThreadState

Obtient une valeur contenant les états du thread actuel.

Méthodes

Abort()
Obsolète.

Déclenche ThreadAbortException dans le thread sur lequel l'appel a lieu pour commencer le processus d'arrêt du thread. L'appel de cette méthode arrête généralement le thread.

Abort(Object)
Obsolète.

Déclenche une ThreadAbortException dans le thread sur lequel l'appel a lieu pour commencer le processus d'arrêt du thread, tout en fournissant des informations sur les exceptions relatives à l'arrêt du thread. L'appel de cette méthode arrête généralement le thread.

AllocateDataSlot()

Alloue sur tous les threads un emplacement de données sans nom. Pour de meilleures performances, utilisez à la place les champs marqués avec l'attribut ThreadStaticAttribute.

AllocateNamedDataSlot(String)

Alloue sur tous les threads un emplacement de données nommé. Pour de meilleures performances, utilisez à la place les champs marqués avec l'attribut ThreadStaticAttribute.

BeginCriticalRegion()

Avertit un hôte que l'exécution est sur le point d'entrer dans une zone de code dans laquelle les effets d'un abandon de thread ou d'une exception non gérée peuvent compromettre d'autres tâches dans le domaine d'application.

BeginThreadAffinity()

Avertit un hôte que le code managé est sur le point d'exécuter des instructions qui dépendent de l'identité du thread du système d'exploitation physique actuel.

DisableComObjectEagerCleanup()

Désactive le nettoyage automatique des wrappers RCW (Runtime Callable Wrapper) pour le thread actuel.

EndCriticalRegion()

Avertit un hôte que l’exécution est sur le point d’entrer dans une zone de code dans laquelle les effets d’un abandon de thread ou d’une exception non gérée sont limités à la tâche actuelle.

EndThreadAffinity()

Avertit un hôte que le code managé a terminé l'exécution des instructions qui dépendent de l'identité du thread du système d'exploitation physique actuel.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
Finalize()

Vérifie que les ressources sont libérées et que toute autre opération de nettoyage est effectuée quand le garbage collector récupère l'objet Thread.

FreeNamedDataSlot(String)

Élimine l'association entre un nom et un emplacement pour tous les threads du processus. Pour de meilleures performances, utilisez à la place les champs marqués avec l'attribut ThreadStaticAttribute.

GetApartmentState()

Retourne une valeur ApartmentState qui indique l'état de cloisonnement.

GetCompressedStack()
Obsolète.
Obsolète.

Retourne un objet CompressedStack qui peut être utilisé pour capturer la pile pour le thread actuel.

GetCurrentProcessorId()

Obtient un ID utilisé pour indiquer le processeur sur lequel le thread actuel s’exécute.

GetData(LocalDataStoreSlot)

Récupère la valeur de l'emplacement spécifié sur le thread actif, dans le domaine actuel du thread actif. Pour de meilleures performances, utilisez à la place les champs marqués avec l'attribut ThreadStaticAttribute.

GetDomain()

Retourne le domaine actuel dans lequel le thread actif est en cours d'exécution.

GetDomainID()

Retourne un identificateur unique de domaine d'application.

GetHashCode()

Retourne un code de hachage pour le thread actuel.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetNamedDataSlot(String)

Recherche un emplacement de données nommé. Pour de meilleures performances, utilisez à la place les champs marqués avec l'attribut ThreadStaticAttribute.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
Interrupt()

Interrompt un thread dont l'état est WaitSleepJoin.

Join()

Bloque le thread appelant jusqu’à ce que le thread représenté par cette instance s’arrête, tout en continuant d’exécuter le pompage COM et SendMessage standard.

Join(Int32)

Bloque le thread appelant jusqu'à ce que le thread représenté par cette instance s'arrête ou que la durée spécifiée soit écoulée, tout en continuant d'exécuter le pompage COM et SendMessage standard.

Join(TimeSpan)

Bloque le thread appelant jusqu'à ce que le thread représenté par cette instance s'arrête ou que la durée spécifiée soit écoulée, tout en continuant d'exécuter le pompage COM et SendMessage standard.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
MemoryBarrier()

Synchronise l'accès à la mémoire comme suit : le processeur qui exécute le thread actuel ne peut pas réorganiser les instructions de sorte que les accès à la mémoire antérieurs à l'appel de MemoryBarrier() s'exécutent après les accès à la mémoire postérieurs à l'appel de MemoryBarrier().

ResetAbort()
Obsolète.

Annule un Abort(Object) demandé pour le thread actuel.

Resume()
Obsolète.
Obsolète.
Obsolète.

Reprend un thread qui a été suspendu.

SetApartmentState(ApartmentState)

Définit l'état de cloisonnement d'un thread avant qu'il ne soit démarré.

SetCompressedStack(CompressedStack)
Obsolète.
Obsolète.

Applique une CompressedStack capturée au thread actuel.

SetData(LocalDataStoreSlot, Object)

Définit les données dans l'emplacement spécifié sur le thread en cours d'exécution, pour le domaine actuel de ce thread. Pour de meilleures performances, utilisez à la place les champs marqués avec l'attribut ThreadStaticAttribute.

Sleep(Int32)

Suspend le thread actuel pendant le nombre spécifié de millisecondes.

Sleep(TimeSpan)

Suspend le thread actuel pendant la durée spécifiée.

SpinWait(Int32)

Provoque l'attente d'un thread pendant le nombre de fois défini par le paramètre iterations.

Start()

Provoque le changement, par le système d'exploitation, de l'état de l'instance actuelle en Running.

Start(Object)

Provoque le changement, par le système d'exploitation, de l'état de l'instance actuelle en Running, et fournit éventuellement un objet contenant les données que la méthode exécutée par le thread doit utiliser.

Suspend()
Obsolète.
Obsolète.
Obsolète.

Suspend le thread ou, s'il est déjà suspendu, n'a aucun effet.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
TrySetApartmentState(ApartmentState)

Définit l'état de cloisonnement d'un thread avant qu'il ne soit démarré.

UnsafeStart()

Provoque le changement, par le système d'exploitation, de l'état de l'instance actuelle en Running.

UnsafeStart(Object)

Provoque le changement, par le système d'exploitation, de l'état de l'instance actuelle en Running, et fournit éventuellement un objet contenant les données que la méthode exécutée par le thread doit utiliser.

VolatileRead(Byte)

Lit la valeur d'un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.

VolatileRead(Double)

Lit la valeur d'un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.

VolatileRead(Int16)

Lit la valeur d'un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.

VolatileRead(Int32)

Lit la valeur d'un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.

VolatileRead(Int64)

Lit la valeur d'un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.

VolatileRead(IntPtr)

Lit la valeur d'un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.

VolatileRead(Object)

Lit la valeur d'un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.

VolatileRead(SByte)

Lit la valeur d'un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.

VolatileRead(Single)

Lit la valeur d'un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.

VolatileRead(UInt16)

Lit la valeur d'un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.

VolatileRead(UInt32)

Lit la valeur d'un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.

VolatileRead(UInt64)

Lit la valeur d'un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.

VolatileRead(UIntPtr)

Lit la valeur d'un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.

VolatileWrite(Byte, Byte)

Écrit une valeur dans un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après cette méthode.

VolatileWrite(Double, Double)

Écrit une valeur dans un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après cette méthode.

VolatileWrite(Int16, Int16)

Écrit une valeur dans un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après cette méthode.

VolatileWrite(Int32, Int32)

Écrit une valeur dans un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après cette méthode.

VolatileWrite(Int64, Int64)

Écrit une valeur dans un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après cette méthode.

VolatileWrite(IntPtr, IntPtr)

Écrit une valeur dans un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après cette méthode.

VolatileWrite(Object, Object)

Écrit une valeur dans un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après cette méthode.

VolatileWrite(SByte, SByte)

Écrit une valeur dans un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après cette méthode.

VolatileWrite(Single, Single)

Écrit une valeur dans un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après cette méthode.

VolatileWrite(UInt16, UInt16)

Écrit une valeur dans un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après cette méthode.

VolatileWrite(UInt32, UInt32)

Écrit une valeur dans un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après cette méthode.

VolatileWrite(UInt64, UInt64)

Écrit une valeur dans un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après cette méthode.

VolatileWrite(UIntPtr, UIntPtr)

Écrit une valeur dans un champ. Sur les systèmes le nécessitant, insère une barrière de mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après cette méthode.

Yield()

Oblige le thread appelant à céder l'exécution à un autre thread prêt à s'exécuter sur le processeur actuel. Le système d'exploitation sélectionne le thread auquel l'exécution doit être cédée.

Implémentations d’interfaces explicites

_Thread.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.

_Thread.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées ensuite pour obtenir les informations de type d'une interface.

_Thread.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).

_Thread.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.

S’applique à

Cohérence de thread

Ce type est thread-safe.

Voir aussi