Share via


Namespaces System.Threading

Os namespaces System.Threading, System.Threading.Tasks e System.Threading.Tasks.DataFlow contêm tipos que permitem a programação multi-threaded e simplificam a criação de código simultâneo e assíncrono.

Este tópico apresenta os tipos nos namespaces System.Threading, System.Threading.Tasks e System.Threading.Tasks.DataFlow que são incluídos no .NET para aplicativos da Windows Store ou podem ser instalados e usados para criar aplicativos Windows Store. Observe que o .NET para aplicativos da Windows Store não inclui todos os membros de cada tipo. Para obter informações sobre tipos individuais, consulte os tópicos vinculados. A documentação de um tipo indica quais membros são incluídos no .NET para aplicativos da Windows Store.

Para instalar o namespace System.Threading.Tasks.Dataflow, abra seu projeto no Visual Studio 2012, escolha Gerenciar Pacotes NuGet no menu Projeto e pesquise online o pacote Microsoft.Tpl.Dataflow.

Namespace System.Threading

Tipos com suporte no .NET para aplicativos da Windows Store

Descrição

AbandonedMutexException

A exceção que é lançada quando um thread adquire um objeto Mutex que outro thread abandonou saindo sem liberá-lo.

AutoResetEvent

Notifica um thread de espera em que um evento ocorreu. Essa classe não pode ser herdada.

Barrier

Permite que várias tarefas trabalhem de forma colaborativa em um algoritmo em paralelo por meio de várias fases.

BarrierPostPhaseException

A exceção que é lançada quando a ação pós-fase de um Barrier falha.

CancellationToken

Propaga a notificação de que as operações devem ser canceladas.

CancellationTokenRegistration

Representa um representante de retorno de chamada que foi registrado com um CancellationToken.

CancellationTokenSource

Sinaliza que um CancellationToken deve ser cancelado.

CountdownEvent

Representa um primitivo de sincronização que é sinalizado quando sua contagem atinge zero.

EventResetMode

Indica se um EventWaitHandle é redefinido de forma automática ou manual após recebimento de um sinal.

EventWaitHandle

Representa um evento de sincronização de thread.

Interlocked

Fornece operações atômicas para variáveis que são compartilhadas por vários threads.

LazyInitializer

Fornece rotinas de inicialização lentas.

LazyThreadSafetyMode

Especifica como uma instância Lazy<T> sincroniza o acesso entre vários threads.

LockRecursionException

A exceção que é lançada quando a entrada recursiva em um bloqueio não é compatível com a política de recursão para o bloqueio.

LockRecursionPolicy

Especifica se um bloqueio pode ser inserido várias vezes pelo mesmo thread.

ManualResetEvent

Notifica um ou mais threads de espera em que um evento ocorreu. Essa classe não pode ser herdada.

ManualResetEventSlim

Fornece uma versão mais simplificada do ManualResetEvent.

Monitor

Fornece um mecanismo que sincroniza o acesso a objetos.

Mutex

Um primitivo de sincronização que também pode ser usado para sincronização entre processos.

ReaderWriterLockSlim

Representa um bloqueio que é usado para gerenciar o acesso a um recurso, permitindo vários threads para leitura ou acesso exclusivo para gravação.

Semaphore

Limita o número de threads que podem acessar um recurso ou um pool de recursos simultaneamente.

SemaphoreFullException

A exceção que é lançada quando o método Release é chamado em um semáforo cuja contagem já está no máximo.

SemaphoreSlim

Uma alternativa superficial para Semaphore que limita o número de threads que podem acessar um recurso ou um pool de recursos simultaneamente.

SendOrPostCallback

Representa um método a ser chamado quando uma mensagem deve ser distribuída em um contexto de sincronização.

SpinLock

Fornece um primitivo de bloqueio de exclusão mútua onde um thread que tenta adquirir o bloqueio aguarda em um loop, fazendo verificações repetidamente até que o bloqueio esteja disponível.

SpinWait

Fornece suporte à espera baseada em rotação.

SynchronizationContext

Fornece a funcionalidade básica para propagação de um contexto de sincronização em vários modelos de sincronização.

SynchronizationLockException

A exceção que é lançada quando um método exige que o chamador possua o bloqueio em um determinado Monitor, e o método é invocado por um chamador que não possui o bloqueio.

ThreadLocal<T>

Fornece armazenamento de dados local de thread.

Timeout

Contém constantes que especificam intervalos de tempo limite infinitos. Essa classe não pode ser herdada.

Volatile

Contém métodos para executar operações de memória voláteis.

WaitHandle

Encapsula objetos específicos do sistema operacional que aguardam acesso exclusivo aos recursos compartilhados.

WaitHandleCannotBeOpenedException

A exceção que é lançada quando é feita uma tentativa de abrir um semáforo ou mutex do sistema que não existe.

Namespace System.Threading.Tasks

Tipos com suporte no .NET para aplicativos da Windows Store

Descrição

ConcurrentExclusiveSchedulerPair

Fornece agendadores de tarefa simultâneos e exclusivos que se coordenam para executar tarefas, ao mesmo tempo que garantem que as tarefas simultâneas possam ser executadas simultaneamente e as tarefas exclusivas nunca.

Parallel

Fornece suporte para regiões e loops paralelos.

ParallelLoopResult

Fornece o status de conclusão da execução de um loop paralelo.

ParallelLoopState

Permite iterações de loops paralelos para interação com outras iterações. Uma instância dessa classe é fornecida pela classe Parallel a cada loop; você não pode criar instâncias no código do usuário.

ParallelOptions

Armazena opções que configuram a operação dos métodos na classe Parallel.

Task

Representa uma operação assíncrona.

Task<TResult>

Representa uma operação assíncrona que pode retornar um valor.

TaskCanceledException

Representa uma exceção usada para comunicar o cancelamento da tarefa.

TaskCompletionSource<TResult>

Representa o lado produtor de um Task<TResult> não associado a um delegado, fornecendo acesso ao lado do consumidor por meio da propriedade TaskCompletionSource<T>.Task.

TaskContinuationOptions

Especifica o comportamento de uma tarefa que é criada com o método ContinueWith ou Task<T>.ContinueWith.

TaskCreationOptions

Especifica os sinalizadores que controlam o comportamento opcional para a criação e a execução de tarefas.

TaskExtensions

Fornece um conjunto de métodos estáticos (compartilhado no Visual Basic) para trabalhar com tipos específicos de instâncias Task.

TaskFactory

Fornece suporte para criação e agendamento de objetos Task.

TaskFactory<TResult>

Fornece suporte para criação e agendamento de objetos Task<T>.

TaskScheduler

Representa um objeto que manipula o trabalho de nível baixo de enfileirar tarefas em threads.

TaskSchedulerException

Representa uma exceção usada para comunicar uma operação inválida por um TaskScheduler.

TaskStatus

Representa o estágio atual no ciclo de vida de uma tarefa.

UnobservedTaskExceptionEventArgs

Fornece dados para o evento que é gerado quando a exceção de uma tarefa com falha não é observada.

Namespace System.Threading.Tasks.DataFlow

Para instalar o namespace System.Threading.Tasks.Dataflow, abra seu projeto em Visual Studio 2012, escolha Gerenciar Pacotes NuGet no menu Projeto e procure na Internet pelo pacote Microsoft.Tpl.Dataflow.

Tipos com suporte no .NET para aplicativos da Windows Store

Descrição

ActionBlock<TInput>

Fornece um bloco de fluxo de dados que invoca um representante Action<T> fornecido para cada elemento de dados recebido.

BatchBlock<T>

Fornece um bloco de fluxo de dados que processa em lotes entradas em matrizes.

BatchedJoinBlock<T1, T2>

Fornece um bloco de fluxo de dados que processa em lotes um número especificado de entradas de possíveis tipos diferentes fornecidos a um ou mais de seus destinos.

BatchedJoinBlock<T1, T2, T3>

Fornece um bloco de fluxo de dados que processa em lotes um número especificado de entradas de possíveis tipos diferentes fornecidos a um ou mais de seus destinos.

BroadcastBlock<T>

Fornece um buffer para armazenar no máximo um elemento de cada vez, substituindo cada mensagem pela seguinte à medida que elas chegam. As mensagens são transmitidas para todos os destinos vinculados, que podem consumir um clone da mensagem.

BufferBlock<T>

Fornece um buffer para armazenamento de dados.

DataflowBlock

Fornece um conjunto de métodos estáticos (compartilhado no Visual Basic) para trabalhar com blocos de fluxo de dados.

DataflowBlockOptions

Fornece as opções usadas para configurar o processamento executado por blocos de fluxo de dados.

DataflowLinkOptions

Fornece as opções usadas para configurar um link entre blocos de fluxo de dados.

DataflowMessageHeader

Fornece um contêiner de atributos de dados para passagem entre blocos de fluxo de dados.

DataflowMessageStatus

Representa o status de um DataflowMessageHeader quando transmitido entre blocos de fluxo de dados.

ExecutionDataflowBlockOptions

Fornece as opções usadas para configurar o processamento executado pelos blocos de fluxo de dados que processam cada mensagem por meio da invocação de um representante fornecido por um usuário. Esses são blocos de fluxo de dados, como ActionBlock<TInput> e TransformBlock<TInput, TOutput>.

GroupingDataflowBlockOptions

Fornece as opções usadas para configurar o processamento executado pelos blocos de fluxo de dados que agrupam várias mensagens. Esses são blocos de fluxo de dados, como JoinBlock<T1, T2> e BatchBlock<T>.

IDataflowBlock

Representa um bloco de fluxo de dados.

IPropagatorBlock<TInput, TOutput>

Representa um bloco de fluxo de dados que é um destino para dados e uma origem de dados.

IReceivableSourceBlock<TOutput>

Representa um bloco de fluxo de dados que oferece suporte ao recebimento de mensagens sem vínculo.

ISourceBlock<TOutput>

Representa um bloco de fluxo de dados que é uma origem de dados.

ITargetBlock<TInput>

Representa um bloco de fluxo de dados que é um destino para os dados.

JoinBlock<T1, T2>

Fornece um bloco de fluxo de dados que ingressa em várias origens de fluxo de dados, que não são necessariamente do mesmo tipo, aguardando um item chegar para cada tipo antes que sejam todos liberados juntos como uma tupla que contém um item por tipo.

JoinBlock<T1, T2, T3>

Fornece um bloco de fluxo de dados que ingressa em várias origens de fluxo de dados, que não são necessariamente do mesmo tipo, aguardando um item chegar para cada tipo antes que sejam todos liberados juntos como uma tupla que contém um item por tipo.

TransformBlock<TInput, TOutput>

Fornece um bloco de fluxo de dados que invoca um representante Func<T, TResult> fornecido para cada elemento de dados recebido.

TransformManyBlock<TInput, TOutput>

Fornece um bloco de fluxo de dados que invoca um representante Func<T, TResult> fornecido para cada elemento de dados recebido.

WriteOnceBlock<T>

Fornece um buffer para recebimento e armazenamento de, no máximo, um elemento em uma rede de blocos de fluxo de dados.

Consulte também

Conceitos

APIs para aplicativos .NET para Windows Store