System.Threading Espaço de Nomes

Fornece classes e interfaces que permitem programação multithread. Para além das classes para sincronizar atividades de threads e acesso a dados (, , , Mutex, e assim sucessivamente), este namespace inclui uma Monitor classe que permite usar um pool de threads fornecidos pelo sistema, e uma Interlocked classe que executa métodos de callback em threads AutoResetEventpool. ThreadPoolTimer

Classes

Name Description
AbandonedMutexException

A exceção que é lançada quando um thread adquire um Mutex objeto que outro thread abandonou ao sair sem o libertar.

AsyncLocal<T>

Representa dados ambientes que são locais para um dado fluxo de controlo assíncrono, como um método assíncrono.

AutoResetEvent

Representa um evento de sincronização de threads que, quando sinalizado, liberta uma única thread em espera e depois reinicia automaticamente. Esta classe não pode ser herdada.

Barrier

Permite que múltiplas tarefas trabalhem cooperativamente num algoritmo em paralelo ao longo de várias fases.

BarrierPostPhaseException

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

CancellationTokenSource

Sinaliza CancellationToken que deve ser cancelado.

CompressedStack

Fornece métodos para definir e capturar a pilha comprimida no thread atual. Esta classe não pode ser herdada.

CountdownEvent

Representa uma primitiva de sincronização que é sinalizada quando a sua contagem atinge zero.

EventWaitHandle

Representa um evento de sincronização de threads.

EventWaitHandleAcl

Fornece um método de extensão específico para Windows para criar objetos EventWaitHandle com segurança específica de lista de controlo de acesso (ACL).

ExecutionContext

Gere o contexto de execução do thread atual. Esta classe não pode ser herdada.

HostExecutionContext

Encapsula e propaga o contexto de execução do host entre threads.

HostExecutionContextManager

Fornece a funcionalidade que permite a um host de runtime de linguagem comum participar no fluxo, ou migração, do contexto de execução.

Interlocked

Fornece operações atómicas para variáveis que são partilhadas por múltiplos threads.

LazyInitializer

Fornece rotinas de inicialização preguiçosas.

Lock

Fornece um mecanismo para alcançar exclusão mútua em regiões de código entre diferentes threads.

LockRecursionException

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

ManualResetEvent

Representa um evento de sincronização de threads que, quando sinalizado, deve ser reiniciado manualmente. Esta classe não pode ser herdada.

ManualResetEventSlim

Representa um evento de sincronização de threads que, quando sinalizado, deve ser reiniciado manualmente. Esta classe é uma alternativa leve a ManualResetEvent.

Monitor

Fornece um mecanismo que sincroniza o acesso a objetos.

Mutex

Uma primitiva de sincronização que também pode ser usada para sincronização entre processos.

MutexAcl

Fornece um método de extensão específico para Windows para criar objetos Mutex com segurança específica de lista de controlo de acesso (ACL).

Overlapped

Fornece uma representação gerida de uma estrutura Win32 OVERLAPPED , incluindo métodos para transferir informação de uma Overlapped instância para uma NativeOverlapped estrutura.

PeriodicTimer

Fornece um temporizador periódico que permite esperar de forma assíncrona pelos ticks do temporizador.

PreAllocatedOverlapped

Representa o estado pré-alocado para operações nativas de E/S sobrepostas.

ReaderWriterLock

Define um bloqueio que suporta escritores individuais e múltiplos leitores.

ReaderWriterLockSlim

Representa um bloqueio usado para gerir o acesso a um recurso, permitindo múltiplos threads para leitura ou acesso exclusivo para escrita.

RegisteredWaitHandle

Representa um handle que foi registado ao chamar RegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean). Esta classe não pode ser herdada.

Semaphore

Limita o número de threads que podem aceder simultaneamente a um recurso ou conjunto de recursos.

SemaphoreAcl

Fornece um método de extensão específico para Windows para criar objetos Semaphore com segurança específica de lista de controlo de acesso (ACL).

SemaphoreFullException

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

SemaphoreSlim

Representa uma alternativa leve que Semaphore limita o número de threads que podem aceder a um recurso ou conjunto de recursos em simultâneo.

SynchronizationContext

Fornece a funcionalidade básica para propagar 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 num dado Monitor, e o método é invocado por um chamador que não possui esse bloqueio.

Thread

Cria e controla uma thread, define a sua prioridade e obtém o seu estado.

ThreadAbortException

A exceção que é lançada quando é feita uma chamada ao Abort(Object) método. Esta classe não pode ser herdada.

ThreadExceptionEventArgs

Fornece dados para o ThreadException evento.

ThreadingAclExtensions

Fornece métodos de extensão específicos para Windows para gerir os descritores de segurança da lista de controlo de acesso (ACL) para EventWaitHandle, Mutex e Semaphore.

ThreadInterruptedException

A exceção que é lançada quando a Thread é interrompido enquanto está em estado de espera.

ThreadLocal<T>

Fornece armazenamento local de dados em threads.

ThreadPool

Fornece um conjunto de threads que podem ser usados para executar tarefas, publicar itens de trabalho, processar I/O assíncronos, esperar em nome de outros threads e processar temporizadores.

ThreadPoolBoundHandle

Representa um handle de I/O que está ligado ao pool de threads do sistema e permite que componentes de baixo nível recebam notificações para operações de I/O assíncronas.

ThreadStartException

A exceção que é lançada quando ocorre uma falha numa thread gerida após a thread do sistema operativo subjacente ter sido iniciada, mas antes de a thread estar pronta para executar código de utilizador.

ThreadStateException

A exceção que é lançada quando a Thread está num inválido ThreadState para a chamada ao método.

Timeout

Contém constantes que especificam intervalos infinitos de time-out. Esta classe não pode ser herdada.

Timer

Fornece um mecanismo para executar um método numa thread pool de threads em intervalos especificados. Esta classe não pode ser herdada.

Volatile

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

WaitHandle

Encapsula objetos específicos do sistema operativo que aguardam acesso exclusivo a recursos partilhados.

WaitHandleCannotBeOpenedException

A exceção que é lançada quando se tenta abrir um mutex, semáforo ou event wait handle do sistema que não existe.

WaitHandleExtensions

Oferece métodos práticos para trabalhar com uma alavanca segura para uma maçaneta de espera.

Estruturas

Name Description
AsyncFlowControl

Fornece a funcionalidade para restaurar a migração, ou fluxo, do contexto de execução entre threads.

AsyncLocalValueChangedArgs<T>

A classe que fornece informação de alteração de dados a AsyncLocal<T> instâncias que se registam para notificações de alteração.

CancellationToken

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

CancellationTokenRegistration

Representa um delegado de callback que foi registado com um CancellationToken.

Lock.Scope

Representa um Lock que pode ter sido introduzido.

LockCookie

Define o bloqueio que implementa semântica de um único escritor/múltiplo leitor. Isto é um tipo de valor.

NamedWaitHandleOptions

Representa um conjunto de opções para objetos de sincronização nomeados que são handles de espera e podem ser partilhados entre processos, como Mutex, Semaphore, e EventWaitHandle.

NativeOverlapped

Fornece um layout explícito que é visível a partir de código não gerido e que terá o mesmo layout da estrutura Win32 SOBREPOSTA, com campos reservados adicionais no final.

SpinLock

Fornece uma primitiva de bloqueio de exclusão mútua onde um thread que tenta adquirir o bloqueio espera num ciclo verificando repetidamente até que o bloqueio fique disponível.

SpinWait

Oferece suporte para espera baseada em rotação.

Interfaces

Name Description
IThreadPoolWorkItem

Representa um item de trabalho que pode ser executado pelo ThreadPool.

ITimer

Representa um temporizador cujo tempo e período podem ser alterados.

Enumerações

Name Description
ApartmentState

Especifica o estado do apartamento de um Thread.

EventResetMode

Indica se um EventWaitHandle é reiniciado automaticamente ou manualmente após receber um sinal.

LazyThreadSafetyMode

Especifica como uma Lazy<T> instância sincroniza o acesso entre múltiplos threads.

LockRecursionPolicy

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

ThreadPriority

Especifica a prioridade de agendamento de um Thread.

ThreadState

Especifica os estados de execução de um Thread.

Delegados

Name Description
ContextCallback

Representa um método a ser chamado dentro de um novo contexto.

IOCompletionCallback

Recebe o código de erro, o número de bytes e o tipo de valor sobreposto quando uma operação de I/O é concluída no pool de threads.

ParameterizedThreadStart

Representa o método que executa sobre um Thread.

SendOrPostCallback

Representa um método a ser chamado quando uma mensagem vai ser enviada para um contexto de sincronização.

ThreadExceptionEventHandler

Representa o método que irá tratar o ThreadException evento de um Application.

ThreadStart

Representa o método que executa sobre um Thread.

TimerCallback

Representa o método que lida com chamadas de um Timer.

WaitCallback

Representa um método de callback a ser executado por um thread pool de threads.

WaitOrTimerCallback

Representa um método a ser chamado quando a WaitHandle é sinalizado ou expira o tempo.