Partager via


System.Threading, espaces de noms

Les espaces de nom System.Threading, System.Threading.Tasks et System.Threading.Tasks.DataFlow contiennent des types qui permettent la programmation multithread et qui simplifient l'écriture de code simultané et asynchrone.

Cette rubrique affiche les types dans les espaces de noms System.Threading, System.Threading.Tasks et System.Threading.Tasks.DataFlow inclus dans les .NET pour les applications du Windows Store, ou peut être installé et utilisé pour créer des applications Windows Store. Notez que les .NET pour les applications du Windows Store n'incluent pas tous les membres de chaque type. Pour plus d'informations sur les différents types, consultez les rubriques associées. La documentation à propos d'un type indique quels membres sont inclus dans les .NET pour les applications du Windows Store.

Pour installer l'espace de noms System.Threading.Tasks.Dataflow, ouvrez votre projet dans Visual Studio 2012 ou une version ultérieure, sélectionnez Gérer les packages NuGet dans le menu Projet et recherchez en ligne le package Microsoft.Tpl.Dataflow.

Espace de noms System.Threading

Types pris en charge dans les .NET pour les applications du Windows Store

Description

AbandonedMutexException

Exception levée lorsqu'un thread acquiert un objet Mutex qu'un autre thread a abandonné en se terminant sans le libérer.

AutoResetEvent

Avertit un thread en attente qu'un événement s'est produit. Cette classe ne peut pas être héritée.

Barrier

Permet à plusieurs tâches de coopérer en parallèle sur un algorithme via plusieurs phases.

BarrierPostPhaseException

Exception levée lorsque l'action de post-phase d'un cloisonnement échoue.

CancellationToken

Propage une notification indiquant que des opérations doivent être annulées.

CancellationTokenRegistration

Représente un délégué de rappel qui a été inscrit avec un CancellationToken.

CancellationTokenSource

Signale à un CancellationToken qu'il doit être annulé.

CountdownEvent

Représente une primitive de synchronisation qui est signalée lorsque son décompte atteint zéro.

EventResetMode

Indique si un EventWaitHandle est réinitialisé automatiquement ou manuellement après la réception d'un signal.

EventWaitHandle

Représente un événement de synchronisation de threads.

Interlocked

Fournit des opérations atomiques pour des variables partagées par plusieurs threads.

LazyInitializer

Fournit des routines d'initialisation tardives.

LazyThreadSafetyMode

Spécifie la manière dont une instance Lazy<T> synchronise l'accès entre plusieurs threads.

LockRecursionException

Exception levée lorsque l'entrée récursive dans un verrou n'est pas compatible avec la stratégie de récurrence pour le verrou.

LockRecursionPolicy

Spécifie si un verrou peut être entré plusieurs fois par le même thread.

ManualResetEvent

Avertit un ou plusieurs threads en attente qu'un événement s'est produit. Cette classe ne peut pas être héritée.

ManualResetEventSlim

Fournit une version allégée de ManualResetEvent.

Monitor

Fournit un mécanisme qui synchronise l'accès aux objets.

Mutex

Primitive de synchronisation qui peut également être utilisée pour la synchronisation entre processus.

ReaderWriterLockSlim

Représente un verrou utilisé pour gérer l'accès à une ressource, en autorisant plusieurs threads pour la lecture ou un accès exclusif en écriture.

Semaphore

Limite le nombre de threads qui peuvent accéder simultanément à une ressource ou à un pool de ressources.

SemaphoreFullException

Exception levée lorsque la surcharge de la méthode Release est appelée alors que le compteur du sémaphore est déjà à la valeur maximale.

SemaphoreSlim

Alternative légère à Semaphore qui limite le nombre de threads pouvant accéder simultanément à une ressource ou à un pool de ressources.

SendOrPostCallback

Représente une méthode à appeler lorsqu'un message doit être distribué à un contexte de synchronisation.

SpinLock

Fournit une primitive de verrou d'exclusion mutuelle où un thread, qui tente d'acquérir le verrou, attend dans une boucle en effectuant des vérifications de manière répétée jusqu'à ce que le verrou devienne disponible.

SpinWait

Prend en charge l'attente basée sur les spins.

SynchronizationContext

Fournit les fonctionnalités de base pour propager un contexte de synchronisation dans plusieurs modèles de synchronisation.

SynchronizationLockException

Exception levée lorsqu'une méthode exige de l'appelant qu'il possède un verrou sur un objet Monitor donné et que la méthode est appelée par un appelant qui ne possède pas ce verrou.

ThreadLocal<T>

Fournit le stockage local des données de thread.

Timeout

Contient les constantes qui spécifient des intervalles de délai d'attente infinis. Cette classe ne peut pas être héritée.

Volatile

Contient des méthodes pour effectuer des opérations de mémoire volatile.

WaitHandle

Encapsule des objets spécifiques au système d'exploitation, qui attendent un accès exclusif aux ressources partagées.

WaitHandleCannotBeOpenedException

Exception levée lors d'une tentative d'ouverture d'un mutex système ou d'un sémaphore qui n'existe pas.

Espace de noms System.Threading.Tasks

Types pris en charge dans les .NET pour les applications du Windows Store

Description

ConcurrentExclusiveSchedulerPair

Fournit des planificateurs de tâches simultanées et exclusives qui se coordonnent pour exécuter les tâches tout en garantissant que les tâches simultanées peuvent s'exécuter simultanément et que les tâches exclusives ne s'exécutent jamais simultanément.

Parallel

Prend en charge les boucles et les régions parallèles.

ParallelLoopResult

Indique l'état d'achèvement de l'exécution d'une boucle parallèle.

ParallelLoopState

Permet aux itérations de boucles parallèles d'interagir avec d'autres itérations. Une instance de cette classe est fournie par la classe Parallel à chaque boucle. Vous ne pouvez pas créer d'instances dans votre code utilisateur.

ParallelOptions

Stocke des options qui configurent l'opération de méthodes sur la classe Parallel.

Task

Représente une opération asynchrone.

Task<TResult>

Représente une opération asynchrone qui peut retourner une valeur.

TaskCanceledException

Représente une exception utilisée pour communiquer l'annulation d'une tâche.

TaskCompletionSource<TResult>

Représente le côté producteur d'une Task<TResult> indépendante d'un délégué, en fournissant l'accès au côté consommateur via la propriété TaskCompletionSource<T>.Task.

TaskContinuationOptions

Spécifie le comportement d'une tâche créée à l'aide de la méthode ContinueWith ou Task<T>.ContinueWith.

TaskCreationOptions

Spécifie des indicateurs qui contrôlent le comportement facultatif pour la création et l'exécution de tâches.

TaskExtensions

Fournit un ensemble de méthodes statiques (Shared en Visual Basic) pour l'utilisation de types spécifiques d'instances de tâches.

TaskFactory

Prend en charge la création et la planification d'objets Task.

TaskFactory<TResult>

Prend en charge la création et la planification d'objets Task<T>.

TaskScheduler

Représente un objet qui gère les tâches de bas niveau de la mise en file d'attente de tâches sur des threads.

TaskSchedulerException

Représente une exception utilisée pour communiquer une opération non valide par un TaskScheduler.

TaskStatus

Représente l'étape actuelle dans le cycle de vie d'une tâche.

UnobservedTaskExceptionEventArgs

Fournit des données sur l'événement déclenché lorsqu'une exception d'une tâche défaillante n'est pas prise en charge.

Espace de noms System.Threading.Tasks.DataFlow

Pour installer l'espace de noms System.Threading.Tasks.Dataflow, ouvrez votre projet dans Visual Studio 2012, choisissez Manage NuGet Packages dans le menu Projet et recherchez en ligne le package Microsoft.Tpl.Dataflow.

Types pris en charge dans les .NET pour les applications du Windows Store

Description

ActionBlock<TInput>

Fournit un bloc de flux de données qui appelle un délégué Action<T> fourni pour chaque élément de données reçu.

BatchBlock<T>

Fournit un bloc de flux de données qui traite par lot les entrées dans les tableaux.

BatchedJoinBlock<T1, T2>

Fournit un bloc de flux de données qui traite par lot un nombre spécifié d'entrées de types potentiellement différents fournis à une ou plusieurs de ses cibles.

BatchedJoinBlock<T1, T2, T3>

Fournit un bloc de flux de données qui traite par lot un nombre spécifié d'entrées de types potentiellement différents fournis à une ou plusieurs de ses cibles.

BroadcastBlock<T>

Fournit une mémoire tampon pour stocker au plus un élément à la fois, en remplaçant chaque message par le suivant lorsque ce dernier arrive. Les messages sont diffusés à toutes les cibles liées, qui peuvent toutes consommer un clone du message.

BufferBlock<T>

Fournit une mémoire tampon pour stocker des données.

DataflowBlock

Fournit un ensemble de méthodes statiques (Shared en Visual Basic) pour utiliser des blocs de flux de données.

DataflowBlockOptions

Fournit les options utilisées pour configurer le traitement exécuté par les blocs de flux de données.

DataflowLinkOptions

Fournit les options utilisées pour configurer un lien entre des blocs de flux de données.

DataflowMessageHeader

Fournit un conteneur d'attributs de données pour passer ces attributs de données entre les blocs de flux de données.

DataflowMessageStatus

Représente l'état d'un DataflowMessageHeader lorsqu'il est passé entre les blocs de flux de données.

ExecutionDataflowBlockOptions

Fournit les options utilisées pour configurer le traitement effectué par les blocs de flux de données qui traitent chaque message via l'appel d'un délégué fourni par l'utilisateur. Il s'agit de blocs de flux de données tels que ActionBlock<TInput> et TransformBlock<TInput, TOutput>.

GroupingDataflowBlockOptions

Fournit les options utilisées pour configurer le traitement effectué par les blocs de flux de données qui regroupent plusieurs messages. Il s'agit de blocs de flux de données tels que JoinBlock<T1, T2> et BatchBlock<T>.

IDataflowBlock

Représente un bloc de flux de données.

IPropagatorBlock<TInput, TOutput>

Représente un bloc de flux de données qui est une cible pour les données et une source de données.

IReceivableSourceBlock<TOutput>

Représente un bloc de flux de données qui prend en charge la réception des messages sans liaison.

ISourceBlock<TOutput>

Représente un bloc de flux de données qui est une source de données.

ITargetBlock<TInput>

Représente un bloc de flux de données qui est une cible pour les données.

JoinBlock<T1, T2>

Fournit un bloc de flux de données qui s'attache à plusieurs sources de flux de données, qui ne sont pas nécessairement du même type, et attend l'arrivée d'un élément pour chaque type avant qu'ils ne soient libérés tous ensemble sous forme de tuple contenant un élément par type.

JoinBlock<T1, T2, T3>

Fournit un bloc de flux de données qui s'attache à plusieurs sources de flux de données, qui ne sont pas nécessairement du même type, et attend l'arrivée d'un élément pour chaque type avant qu'ils ne soient libérés tous ensemble sous forme de tuple contenant un élément par type.

TransformBlock<TInput, TOutput>

Fournit un bloc de flux de données qui appelle un délégué Func<T, TResult> fourni pour chaque élément de données reçu.

TransformManyBlock<TInput, TOutput>

Fournit un bloc de flux de données qui appelle un délégué Func<T, TResult> fourni pour chaque élément de données reçu.

WriteOnceBlock<T>

Fournit une mémoire tampon pour recevoir et stocker au plus un élément dans un réseau de blocs de flux de données.

Voir aussi

Concepts

.NET pour les API d'applications du Windows Store