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

Remarques

Pour plus d’informations sur cette API, consultez les remarques d’API supplémentaires pour Thread.

Constructeurs

Nom Description
Thread(ParameterizedThreadStart, Int32)

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

Thread(ParameterizedThreadStart)

Initialise une nouvelle instance de la Thread classe, en spécifiant un délégué qui permet à un objet d’être transmis au thread au démarrage du thread.

Thread(ThreadStart, Int32)

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

Thread(ThreadStart)

Initialise une nouvelle instance de la classe Thread.

Propriétés

Nom Description
ApartmentState
Obsolète.

Obtient ou définit l’état d’appartement 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 la 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 Resource Manager pour rechercher des ressources spécifiques à la culture au moment de l’exécution.

ExecutionContext

Obtient un ExecutionContext objet qui contient des informations sur les différents contextes du thread actuel.

IsAlive

Obtient une valeur indiquant l’état d’exécution du thread actuel.

IsBackground

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

IsThreadPoolThread

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

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

Nom Description
Abort()

Déclenche un ThreadAbortException thread sur lequel il est appelé pour commencer le processus de fin du thread. L’appel de cette méthode met généralement fin au thread.

Abort(Object)

Déclenche un ThreadAbortException thread sur lequel il est appelé, pour commencer le processus de fin du thread tout en fournissant des informations d’exception sur l’arrêt du thread. L’appel de cette méthode met généralement fin au thread.

AllocateDataSlot()

Alloue un emplacement de données sans nom sur tous les threads. Pour de meilleures performances, utilisez plutôt des champs marqués avec l’attribut ThreadStaticAttribute .

AllocateNamedDataSlot(String)

Alloue un emplacement de données nommé sur tous les threads. Pour de meilleures performances, utilisez plutôt des champs marqués avec l’attribut ThreadStaticAttribute .

BeginCriticalRegion()

Avertit un hôte que l’exécution est sur le point d’entrer une région de code dans laquelle les effets d’une exception abandonnée ou non gérée peuvent compromettre d’autres tâches dans le domaine de l’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 de système d’exploitation physique actuel.

DisableComObjectEagerCleanup()

Désactive le nettoyage automatique des wrappers pouvant être appelé au runtime (RCW) pour le thread actuel.

EndCriticalRegion()

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

EndThreadAffinity()

Avertit un hôte que le code managé a terminé d’exécuter des instructions qui dépendent de l’identité du thread de 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()

Garantit que les ressources sont libérées et que d’autres opérations de nettoyage sont effectuées lorsque 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 plutôt des champs marqués avec l’attribut ThreadStaticAttribute .

GetApartmentState()

Retourne une ApartmentState valeur indiquant l’état de l’appartement.

GetCompressedStack()
Obsolète.

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

GetCurrentProcessorId()

Obtient un ID utilisé pour indiquer sur quel processeur le thread actuel est en cours d’exécution.

GetData(LocalDataStoreSlot)

Récupère la valeur de l’emplacement spécifié sur le thread actuel, dans le domaine actuel du thread actuel. Pour de meilleures performances, utilisez plutôt des champs marqués avec l’attribut ThreadStaticAttribute .

GetDomain()

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

GetDomainID()

Retourne un identificateur de domaine d’application unique.

GetHashCode()

Retourne un code de hachage pour le thread actuel.

GetHashCode()

Sert 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 plutôt des champs marqués avec l’attribut ThreadStaticAttribute .

GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
Interrupt()

Interrompt un thread qui se trouve dans l’état du WaitSleepJoin thread.

Join()

Bloque le thread appelant jusqu’à ce que le thread représenté par cette instance se termine, tout en continuant à effectuer des opérations COM et SendMessage de pompe standard.

Join(Int32)

Bloque le thread appelant jusqu’à ce que le thread représenté par cette instance se termine ou que le temps spécifié s’écoule, tout en continuant à effectuer une pompe COM et SendMessage standard.

Join(TimeSpan)

Bloque le thread appelant jusqu’à ce que le thread représenté par cette instance se termine ou que le temps spécifié s’écoule, tout en continuant à effectuer une pompe COM et SendMessage standard.

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
MemoryBarrier()

Synchronise l’accès à la mémoire comme suit : le processeur exécutant le thread actuel ne peut pas réorganiser les instructions de telle façon que la mémoire accède avant l’appel pour MemoryBarrier() s’exécuter après les accès à la mémoire qui suivent l’appel.MemoryBarrier()

ResetAbort()

Annule une Abort(Object) demande pour le thread actuel.

Resume()
Obsolète.
Obsolète.

Reprend un thread qui a été suspendu.

SetApartmentState(ApartmentState)

Définit l’état d’appartement d’un thread avant son démarrage.

SetCompressedStack(CompressedStack)
Obsolète.

Applique une capture CompressedStack 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 plutôt des champs marqués avec l’attribut ThreadStaticAttribute .

Sleep(Int32)

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

Sleep(TimeSpan)

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

SpinWait(Int32)

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

Start()

Provoque le changement de l’état de l’instance Runningactuelle par le système d’exploitation.

Start(Object)

Provoque le changement de l’état de l’instance Runningactuelle par le système d’exploitation et fournit éventuellement un objet contenant des données à utiliser par la méthode exécutée par le thread.

Suspend()
Obsolète.
Obsolète.

Suspend le thread, ou si le thread 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 d’appartement d’un thread avant son démarrage.

VolatileRead(Byte)

Lit la valeur d’un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît après cette méthode dans le code, le processeur ne peut pas le déplacer avant cette méthode.

VolatileRead(Double)

Lit la valeur d’un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît après cette méthode dans le code, le processeur ne peut pas le déplacer avant cette méthode.

VolatileRead(Int16)

Lit la valeur d’un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît après cette méthode dans le code, le processeur ne peut pas le déplacer avant cette méthode.

VolatileRead(Int32)

Lit la valeur d’un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît après cette méthode dans le code, le processeur ne peut pas le déplacer avant cette méthode.

VolatileRead(Int64)

Lit la valeur d’un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît après cette méthode dans le code, le processeur ne peut pas le déplacer avant cette méthode.

VolatileRead(IntPtr)

Lit la valeur d’un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît après cette méthode dans le code, le processeur ne peut pas le déplacer avant cette méthode.

VolatileRead(Object)

Lit la valeur d’un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît après cette méthode dans le code, le processeur ne peut pas le déplacer avant cette méthode.

VolatileRead(SByte)

Lit la valeur d’un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît après cette méthode dans le code, le processeur ne peut pas le déplacer avant cette méthode.

VolatileRead(Single)

Lit la valeur d’un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît après cette méthode dans le code, le processeur ne peut pas le déplacer avant cette méthode.

VolatileRead(UInt16)

Lit la valeur d’un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît après cette méthode dans le code, le processeur ne peut pas le déplacer avant cette méthode.

VolatileRead(UInt32)

Lit la valeur d’un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît après cette méthode dans le code, le processeur ne peut pas le déplacer avant cette méthode.

VolatileRead(UInt64)

Lit la valeur d’un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît après cette méthode dans le code, le processeur ne peut pas le déplacer avant cette méthode.

VolatileRead(UIntPtr)

Lit la valeur d’un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît après cette méthode dans le code, le processeur ne peut pas le déplacer avant cette méthode.

VolatileWrite(Byte, Byte)

Écrit une valeur dans un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît avant cette méthode dans le code, le processeur ne peut pas le déplacer après cette méthode.

VolatileWrite(Double, Double)

Écrit une valeur dans un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît avant cette méthode dans le code, le processeur ne peut pas le déplacer après cette méthode.

VolatileWrite(Int16, Int16)

Écrit une valeur dans un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît avant cette méthode dans le code, le processeur ne peut pas le déplacer après cette méthode.

VolatileWrite(Int32, Int32)

Écrit une valeur dans un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît avant cette méthode dans le code, le processeur ne peut pas le déplacer après cette méthode.

VolatileWrite(Int64, Int64)

Écrit une valeur dans un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît avant cette méthode dans le code, le processeur ne peut pas le déplacer après cette méthode.

VolatileWrite(IntPtr, IntPtr)

Écrit une valeur dans un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît avant cette méthode dans le code, le processeur ne peut pas le déplacer après cette méthode.

VolatileWrite(Object, Object)

Écrit une valeur dans un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît avant cette méthode dans le code, le processeur ne peut pas le déplacer après cette méthode.

VolatileWrite(SByte, SByte)

Écrit une valeur dans un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît avant cette méthode dans le code, le processeur ne peut pas le déplacer après cette méthode.

VolatileWrite(Single, Single)

Écrit une valeur dans un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît avant cette méthode dans le code, le processeur ne peut pas le déplacer après cette méthode.

VolatileWrite(UInt16, UInt16)

Écrit une valeur dans un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît avant cette méthode dans le code, le processeur ne peut pas le déplacer après cette méthode.

VolatileWrite(UInt32, UInt32)

Écrit une valeur dans un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît avant cette méthode dans le code, le processeur ne peut pas le déplacer après cette méthode.

VolatileWrite(UInt64, UInt64)

Écrit une valeur dans un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît avant cette méthode dans le code, le processeur ne peut pas le déplacer après cette méthode.

VolatileWrite(UIntPtr, UIntPtr)

Écrit une valeur dans un champ. Sur les systèmes qui en ont besoin, 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 lecture ou une écriture apparaît avant cette méthode dans le code, le processeur ne peut pas le 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 à générer.

Implémentations d’interfaces explicites

Nom Description
_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 méthodes exposées par un objet.

S’applique à

Cohérence de thread

Ce type est thread safe.

Voir aussi