Condividi tramite


System.Threading Spazio dei nomi

Fornisce le classi e le interfacce che consentono la programmazione multithreading. Oltre alle classi per la sincronizzazione delle attività di thread e l'accesso ai dati (Mutex, Monitor, Interlocked, AutoResetEvent e così via), questo spazio dei nomi include una classe ThreadPool che consente di usare un pool di thread forniti dal sistema, nonché una classe Timer che esegue i metodi di callback nei thread del pool di thread.

Classi

AbandonedMutexException

Eccezione generata quando un thread acquisisce un oggetto Mutex che un altro thread ha abbandonato uscendo senza rilasciarlo.

AsyncLocal<T>

Rappresenta dati di ambiente locali rispetto a un flusso di controllo asincrono specificato, ad esempio un metodo asincrono.

AutoResetEvent

Rappresenta un evento di sincronizzazione thread che, quando segnalato, rilascia un singolo thread in attesa e quindi reimposta automaticamente. La classe non può essere ereditata.

Barrier

Consente a più attività di funzionare in modo cooperativo in un algoritmo in parallelo tramite più fasi.

BarrierPostPhaseException

Eccezione generata quando l'azione post-fase di un oggetto Barrier non viene eseguita correttamente.

CancellationTokenSource

Segnala a un oggetto CancellationToken che deve essere annullato.

CompressedStack

Fornisce metodi per l'impostazione e l'acquisizione dello stack compresso sul thread corrente. La classe non può essere ereditata.

CountdownEvent

Rappresenta una primitiva di sincronizzazione segnalata quando il relativo conteggio raggiunge lo zero.

EventWaitHandle

Rappresenta un evento di sincronizzazione dei thread.

EventWaitHandleAcl

Fornisce un metodo di estensione specifico di Windows per la creazione di oggetti EventWaitHandle con sicurezza basata sull'elenco di controllo di accesso (ACL).

ExecutionContext

Gestisce il contesto di esecuzione per il thread corrente. La classe non può essere ereditata.

HostExecutionContext

Incapsula e propaga il contesto di esecuzione host fra i thread.

HostExecutionContextManager

Fornisce la funzionalità che consente a un host Common Language Runtime di partecipare al flusso, o migrazione, del contesto di esecuzione.

Interlocked

Consente di eseguire operazioni atomiche per variabili condivise da più thread.

LazyInitializer

Fornisce routine di inizializzazione differita.

Lock

Fornisce un meccanismo per ottenere l'esclusione reciproca nelle aree di codice tra thread diversi.

LockRecursionException

Eccezione che viene generata quando una voce ricorsiva in un blocco non è compatibile con i criteri di ricorsione per il blocco stesso.

ManualResetEvent

Rappresenta un evento di sincronizzazione dei thread che, quando viene segnalato, deve essere reimpostato manualmente. La classe non può essere ereditata.

ManualResetEventSlim

Rappresenta un evento di sincronizzazione dei thread che, quando viene segnalato, deve essere reimpostato manualmente. La classe è un'alternativa leggera a ManualResetEvent.

Monitor

Fornisce un meccanismo che sincronizza l'accesso agli oggetti.

Mutex

Primitiva di sincronizzazione che può essere usata anche per la sincronizzazione interprocesso.

MutexAcl

Fornisce un metodo di estensione specifico di Windows per la creazione di oggetti Mutex con sicurezza basata sull'elenco di controllo di accesso (ACL).

Overlapped

Fornisce una rappresentazione gestita di una struttura OVERLAPPED Win32, inclusi i metodi per trasferire le informazioni da un'istanza di Overlapped a una struttura NativeOverlapped.

PeriodicTimer

Fornisce un timer periodico che consente di attendere in modo asincrono i tick del timer.

PreAllocatedOverlapped

Rappresenta lo stato preallocato per le operazioni I/O sovrapposte native.

ReaderWriterLock

Definisce un blocco che supporta writer singoli e lettori multipli.

ReaderWriterLockSlim

Rappresenta un blocco usato per gestire l'accesso a una risorsa, consentendo a più thread l'accesso in lettura o l'accesso esclusivo in scrittura.

RegisteredWaitHandle

Rappresenta un handle registrato durante la chiamata a RegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean). La classe non può essere ereditata.

Semaphore

Limita il numero di thread che possono accedere simultaneamente a una risorsa o a un pool di risorse.

SemaphoreAcl

Fornisce un metodo di estensione specifico di Windows per la creazione di oggetti Semaphore con sicurezza basata sull'elenco di controllo di accesso (ACL).

SemaphoreFullException

Eccezione che viene generata quando il metodo Release viene chiamato su un semaforo il cui conteggio ha già raggiunto il massimo.

SemaphoreSlim

Rappresenta un'alternativa semplificata a Semaphore che limita il numero di thread che possono accedere simultaneamente a una risorsa o a un pool di risorse.

SynchronizationContext

Fornisce la funzionalità di base per propagare un contesto di sincronizzazione in vari modelli di sincronizzazione.

SynchronizationLockException

Eccezione generata quando un metodo richiede che il chiamante sia il proprietario del blocco su un Monitor specifico, e tale metodo viene richiamato da un chiamante che non è proprietario del blocco.

Thread

Crea e controlla un thread, ne imposta le priorità e ne ottiene lo stato.

ThreadAbortException

Eccezione generata quando viene eseguita una chiamata al metodo Abort(Object). La classe non può essere ereditata.

ThreadExceptionEventArgs

Fornisce dati per l'evento ThreadException.

ThreadingAclExtensions

Offre metodi di estensione specifici di Windows per la gestione dei descrittori di sicurezza dell'elenco di controllo di accesso (ACL) per EventWaitHandle, Mutex e Semaphore.

ThreadInterruptedException

Eccezione generata quando un Thread viene interrotto mentre si trova nello stato di attesa.

ThreadLocal<T>

Consente l'archiviazione dei dati nella memoria locale dei thread.

ThreadPool

Fornisce un pool di thread che può essere usato per eseguire attività, inviare elementi di lavoro, elaborare operazioni di I/O asincrone, attendere per conto di altri thread ed elaborare timer.

ThreadPoolBoundHandle

Rappresenta un handle di I/O associato al pool di thread di sistema che consente ai componenti di basso livello di ricevere le notifiche per le operazioni di I/O asincrone.

ThreadStartException

Eccezione generata quando si verifica un errore in un thread gestito dopo l'avvio del thread del sistema operativo sottostante, ma prima che il thread sia pronto per l'esecuzione di codice utente.

ThreadStateException

Eccezione generata quando un Thread si trova in un ThreadState non valido per la chiamata al metodo.

Timeout

Contiene costanti che specificano intervalli di timeout infiniti. La classe non può essere ereditata.

Timer

Fornisce un meccanismo per eseguire un metodo su un thread del pool di thread a intervalli specificati. La classe non può essere ereditata.

Volatile

Contiene metodi per l'esecuzione di operazioni relative alla memoria volatile.

WaitHandle

Incapsula oggetti specifici del sistema operativo che attendono l'accesso esclusivo alle risorse condivise.

WaitHandleCannotBeOpenedException

Eccezione generata quando viene effettuato un tentativo di aprire un mutex di sistema, un semaforo o un handle di attesa evento inesistente.

WaitHandleExtensions

Fornisce metodi pratici per usare un handle sicuro per un handle di attesa.

Struct

AsyncFlowControl

Fornisce la funzionalità per ripristinare la migrazione, o flusso, del contesto di esecuzione fra thread.

AsyncLocalValueChangedArgs<T>

Classe che fornisce le informazioni di modifica dei dati alle istanze di AsyncLocal<T> registrate per le notifiche di modifica.

CancellationToken

Propaga la notifica di richiesta di annullamento delle operazioni.

CancellationTokenRegistration

Rappresenta un delegato di callback registrato con CancellationToken.

Lock.Scope

Rappresenta un Lock oggetto che potrebbe essere stato immesso.

LockCookie

Definisce il blocco che implementa la semantica writer singolo/visualizzatori multipli. Si tratta di un tipo di valore.

NativeOverlapped

Fornisce un layout esplicito visibile dal codice non gestito e che avrà lo stesso layout della struttura Win32 OVERLAPPED con campi riservati aggiuntivi alla fine.

SpinLock

Fornisce una primitiva di blocco a esclusione reciproca in cui un thread che tenta di acquisire il blocco rimane in attesa in un ciclo eseguendo controlli ripetuti finché il blocco non diventa disponibile.

SpinWait

Fornisce il supporto per l'attesa basata su rotazione.

Interfacce

IThreadPoolWorkItem

Rappresenta un elemento di lavoro che può essere eseguito da ThreadPool.

ITimer

Rappresenta un timer che può avere la scadenza e il periodo di modifica.

Enumerazioni

ApartmentState

Specifica lo stato dell'apartment di un Thread.

EventResetMode

Indica se EventWaitHandle verrà reimpostato automaticamente o manualmente dopo la ricezione di un segnale.

LazyThreadSafetyMode

Specifica il modo in cui un'istanza di Lazy<T> sincronizza l'accesso tra più thread.

LockRecursionPolicy

Specifica se lo stesso thread può accedere a un blocco più volte.

ThreadPriority

Consente di specificare la priorità di pianificazione di un Thread.

ThreadState

Vengono specificati gli stati di esecuzione di un Thread.

Delegati

ContextCallback

Rappresenta un metodo da chiamare all'interno di un nuovo contesto.

IOCompletionCallback

Consente di ricevere il codice di errore, il numero di byte e il tipo di valore sovrapposto quando viene completata un'operazione di I/O nel pool di thread.

ParameterizedThreadStart

Rappresenta il metodo eseguito in un oggetto Thread.

SendOrPostCallback

Rappresenta un metodo da chiamare quando un messaggio deve essere inviato a un contesto di sincronizzazione.

ThreadExceptionEventHandler

Rappresenta il metodo che gestirà l'evento ThreadException di un oggetto Application.

ThreadStart

Rappresenta il metodo eseguito in un oggetto Thread.

TimerCallback

Rappresenta il metodo che gestisce le chiamate da un Timer.

WaitCallback

Rappresenta un metodo di callback che deve essere eseguito da un thread del pool di thread.

WaitOrTimerCallback

Rappresenta un metodo da chiamare quando WaitHandle riceve un segnale o esegue il timeout.