Thread Classe

Definizione

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

public ref class Thread sealed : System::Runtime::ConstrainedExecution::CriticalFinalizerObject
public ref class Thread sealed
public ref class Thread sealed : System::Runtime::InteropServices::_Thread
public ref class Thread sealed : System::Runtime::ConstrainedExecution::CriticalFinalizerObject, System::Runtime::InteropServices::_Thread
public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Thread
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Thread : System.Runtime.InteropServices._Thread
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.Runtime.InteropServices._Thread
type Thread = class
    inherit CriticalFinalizerObject
[<System.Runtime.InteropServices.ComVisible(true)>]
type Thread = class
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Thread = class
    interface _Thread
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Thread = class
    inherit CriticalFinalizerObject
    interface _Thread
Public NotInheritable Class Thread
Inherits CriticalFinalizerObject
Public NotInheritable Class Thread
Public NotInheritable Class Thread
Implements _Thread
Public NotInheritable Class Thread
Inherits CriticalFinalizerObject
Implements _Thread
Ereditarietà
Ereditarietà
Thread
Attributi
Implementazioni

Commenti

Per altre informazioni su questa API, vedere Osservazioni api supplementari per Thread.

Costruttori

Thread(ParameterizedThreadStart)

Inizializza una nuova istanza della classe Thread, specificando un delegato che consente di passare un oggetto al thread quando quest'ultimo viene avviato.

Thread(ParameterizedThreadStart, Int32)

Inizializza una nuova istanza della classe Thread, specificando un delegato che consente di passare un oggetto al thread quando quest'ultimo viene avviato e specificando la dimensione massima dello stack per il thread.

Thread(ThreadStart)

Inizializza una nuova istanza della classe Thread.

Thread(ThreadStart, Int32)

Inizializza una nuova istanza della classe Thread, specificando la dimensione massima dello stack per il thread.

Proprietà

ApartmentState
Obsoleti.
Obsoleti.

Ottiene o imposta lo stato dell'apartment del thread.

CurrentContext

Ottiene il contesto corrente in cui è in esecuzione il thread.

CurrentCulture

Ottiene o imposta le impostazioni cultura per il thread corrente.

CurrentPrincipal

Ottiene o imposta l'entità corrente del thread (per la sicurezza basata sui ruoli).

CurrentThread

Ottiene il thread attualmente in esecuzione.

CurrentUICulture

Ottiene o imposta le impostazioni cultura correnti usate da Gestione risorse per cercare le risorse specifiche delle impostazioni cultura in fase di esecuzione.

ExecutionContext

Ottiene un oggetto ExecutionContext contenente informazioni sui diversi contesti del thread corrente.

IsAlive

Ottiene un valore che indica lo stato di esecuzione del thread corrente.

IsBackground

Ottiene o imposta un valore che indica se il thread viene eseguito in background.

IsThreadPoolThread

Ottiene un valore che indica se un thread appartiene o meno al pool di thread gestiti.

ManagedThreadId

Ottiene un identificatore univoco per il thread gestito corrente.

Name

Ottiene o imposta il nome del thread.

Priority

Ottiene o imposta un valore che indica la priorità di pianificazione di un thread.

ThreadState

Ottiene un valore contenente gli stati del thread corrente.

Metodi

Abort()
Obsoleti.

Genera un'eccezione ThreadAbortException nel thread in cui viene richiamato, per iniziare il processo di terminazione del thread. La chiamata a questo metodo in genere termina il thread.

Abort(Object)
Obsoleti.

Genera un'eccezione ThreadAbortException nel thread in cui viene richiamato per iniziare il processo di terminazione del thread fornendo anche informazioni sull'eccezione relative alla terminazione del thread. La chiamata a questo metodo in genere termina il thread.

AllocateDataSlot()

Alloca uno slot di dati senza nome su tutti i thread. Per ottenere prestazioni migliori, usare i campi contrassegnati con l'attributo ThreadStaticAttribute.

AllocateNamedDataSlot(String)

Alloca uno slot di dati denominato su tutti i thread. Per ottenere prestazioni migliori, usare i campi contrassegnati con l'attributo ThreadStaticAttribute.

BeginCriticalRegion()

Notifica a un host che l'esecuzione sta per entrare in un'area di codice in cui gli effetti di un'interruzione del thread o di un'eccezione non gestita possono rappresentare un rischio per altre attività nel dominio applicazione.

BeginThreadAffinity()

Notifica a un host che il codice gestito sta per eseguire istruzioni che dipendono dall'identità del thread fisico corrente del sistema operativo.

DisableComObjectEagerCleanup()

Disattiva la pulizia automatica dei Runtime Callable Wrapper (RCW) per il thread corrente.

EndCriticalRegion()

Notifica a un host che l'esecuzione sta per entrare in un'area di codice in cui gli effetti di un'interruzione del thread o di un'eccezione non gestita sono limitati all'attività corrente.

EndThreadAffinity()

Notifica a un host che il codice gestito ha terminato l'esecuzione di istruzioni che dipendono dall'identità del thread fisico corrente del sistema operativo.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Finalize()

Garantisce che le risorse vengano liberate e che vengano eseguite le altre operazioni di pulizia quando l'oggetto Thread viene recuperato da Garbage Collector.

FreeNamedDataSlot(String)

Elimina l'associazione tra un nome e uno slot per tutti i thread del processo. Per ottenere prestazioni migliori, usare i campi contrassegnati con l'attributo ThreadStaticAttribute.

GetApartmentState()

Restituisce un valore ApartmentState che indica lo stato dell'apartment.

GetCompressedStack()
Obsoleti.
Obsoleti.

Restituisce un oggetto CompressedStack che può essere usato per acquisire lo stack per il thread corrente.

GetCurrentProcessorId()

Ottiene un ID usato per indicare il processore in cui è in esecuzione il thread corrente.

GetData(LocalDataStoreSlot)

Recupera il valore dallo slot specificato sul thread corrente, all'interno del dominio corrente del thread corrente. Per ottenere prestazioni migliori, usare i campi contrassegnati con l'attributo ThreadStaticAttribute.

GetDomain()

Restituisce il dominio corrente in cui viene eseguito il thread corrente.

GetDomainID()

Restituisce un identificatore di dominio applicazione univoco.

GetHashCode()

Restituisce un codice hash per il thread corrente.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetNamedDataSlot(String)

Cerca uno slot di dati denominato. Per ottenere prestazioni migliori, usare i campi contrassegnati con l'attributo ThreadStaticAttribute.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
Interrupt()

Interrompe un thread il cui stato è WaitSleepJoin.

Join()

Blocca il thread chiamante finché non termina il thread rappresentato da questa istanza, pur continuando a eseguire la distribuzione di SendMessage e COM standard.

Join(Int32)

Blocca il thread chiamante finché non termina il thread rappresentato da questa istanza o finché non trascorre l'intervallo di tempo specificato, pur continuando a eseguire la distribuzione di SendMessage e COM standard.

Join(TimeSpan)

Blocca il thread chiamante finché non termina il thread rappresentato da questa istanza o finché non trascorre l'intervallo di tempo specificato, pur continuando a eseguire la distribuzione di SendMessage e COM standard.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
MemoryBarrier()

Sincronizza l'accesso alla memoria come segue: il processore che esegue il thread corrente non può riordinare le istruzioni in modo tale che gli accessi alla memoria prima della chiamata al metodo MemoryBarrier() vengano eseguiti dopo quelli successivi alla chiamata al metodo MemoryBarrier().

ResetAbort()
Obsoleti.

Annulla il metodo Abort(Object) richiesto per il thread corrente.

Resume()
Obsoleti.
Obsoleti.
Obsoleti.

Riprende un thread che era stato sospeso.

SetApartmentState(ApartmentState)

Imposta lo stato dell'apartment di un thread prima che venga avviato.

SetCompressedStack(CompressedStack)
Obsoleti.
Obsoleti.

Applica un oggetto CompressedStack acquisito al thread corrente.

SetData(LocalDataStoreSlot, Object)

Imposta i dati nello slot specificato sul thread in esecuzione per il dominio corrente di tale thread. Per ottenere prestazioni migliori, usare i campi contrassegnati con l'attributo ThreadStaticAttribute.

Sleep(Int32)

Sospende il thread corrente per il numero specificato di millisecondi.

Sleep(TimeSpan)

Sospende il thread corrente per il periodo di tempo specificato.

SpinWait(Int32)

Determina che un thread rimanga in attesa il numero di volte definito dal parametro iterations.

Start()

Determina il cambiamento da parte del sistema operativo dello stato dell'istanza corrente in Running.

Start(Object)

Determina il cambiamento da parte del sistema operativo dello stato dell'istanza corrente in Running e, facoltativamente, fornisce un oggetto contenente i dati che devono essere usati dal metodo eseguito dal thread.

Suspend()
Obsoleti.
Obsoleti.
Obsoleti.

Sospende il thread o, se il thread è già sospeso, non avrà alcun effetto.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
TrySetApartmentState(ApartmentState)

Imposta lo stato dell'apartment di un thread prima che venga avviato.

UnsafeStart()

Determina il cambiamento da parte del sistema operativo dello stato dell'istanza corrente in Running.

UnsafeStart(Object)

Determina il cambiamento da parte del sistema operativo dello stato dell'istanza corrente in Running e, facoltativamente, fornisce un oggetto contenente i dati che devono essere usati dal metodo eseguito dal thread.

VolatileRead(Byte)

Legge il valore di un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare dopo questo metodo nel codice, il processore non potrà spostarla in una posizione precedente al metodo stesso.

VolatileRead(Double)

Legge il valore di un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare dopo questo metodo nel codice, il processore non potrà spostarla in una posizione precedente al metodo stesso.

VolatileRead(Int16)

Legge il valore di un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare dopo questo metodo nel codice, il processore non potrà spostarla in una posizione precedente al metodo stesso.

VolatileRead(Int32)

Legge il valore di un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare dopo questo metodo nel codice, il processore non potrà spostarla in una posizione precedente al metodo stesso.

VolatileRead(Int64)

Legge il valore di un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare dopo questo metodo nel codice, il processore non potrà spostarla in una posizione precedente al metodo stesso.

VolatileRead(IntPtr)

Legge il valore di un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare dopo questo metodo nel codice, il processore non potrà spostarla in una posizione precedente al metodo stesso.

VolatileRead(Object)

Legge il valore di un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare dopo questo metodo nel codice, il processore non potrà spostarla in una posizione precedente al metodo stesso.

VolatileRead(SByte)

Legge il valore di un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare dopo questo metodo nel codice, il processore non potrà spostarla in una posizione precedente al metodo stesso.

VolatileRead(Single)

Legge il valore di un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare dopo questo metodo nel codice, il processore non potrà spostarla in una posizione precedente al metodo stesso.

VolatileRead(UInt16)

Legge il valore di un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare dopo questo metodo nel codice, il processore non potrà spostarla in una posizione precedente al metodo stesso.

VolatileRead(UInt32)

Legge il valore di un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare dopo questo metodo nel codice, il processore non potrà spostarla in una posizione precedente al metodo stesso.

VolatileRead(UInt64)

Legge il valore di un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare dopo questo metodo nel codice, il processore non potrà spostarla in una posizione precedente al metodo stesso.

VolatileRead(UIntPtr)

Legge il valore di un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare dopo questo metodo nel codice, il processore non potrà spostarla in una posizione precedente al metodo stesso.

VolatileWrite(Byte, Byte)

Scrive un valore in un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare prima di questo metodo nel codice, il processore non potrà spostarla in una posizione successiva al metodo stesso.

VolatileWrite(Double, Double)

Scrive un valore in un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare prima di questo metodo nel codice, il processore non potrà spostarla in una posizione successiva al metodo stesso.

VolatileWrite(Int16, Int16)

Scrive un valore in un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare prima di questo metodo nel codice, il processore non potrà spostarla in una posizione successiva al metodo stesso.

VolatileWrite(Int32, Int32)

Scrive un valore in un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare prima di questo metodo nel codice, il processore non potrà spostarla in una posizione successiva al metodo stesso.

VolatileWrite(Int64, Int64)

Scrive un valore in un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare prima di questo metodo nel codice, il processore non potrà spostarla in una posizione successiva al metodo stesso.

VolatileWrite(IntPtr, IntPtr)

Scrive un valore in un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare prima di questo metodo nel codice, il processore non potrà spostarla in una posizione successiva al metodo stesso.

VolatileWrite(Object, Object)

Scrive un valore in un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare prima di questo metodo nel codice, il processore non potrà spostarla in una posizione successiva al metodo stesso.

VolatileWrite(SByte, SByte)

Scrive un valore in un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare prima di questo metodo nel codice, il processore non potrà spostarla in una posizione successiva al metodo stesso.

VolatileWrite(Single, Single)

Scrive un valore in un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare prima di questo metodo nel codice, il processore non potrà spostarla in una posizione successiva al metodo stesso.

VolatileWrite(UInt16, UInt16)

Scrive un valore in un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare prima di questo metodo nel codice, il processore non potrà spostarla in una posizione successiva al metodo stesso.

VolatileWrite(UInt32, UInt32)

Scrive un valore in un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare prima di questo metodo nel codice, il processore non potrà spostarla in una posizione successiva al metodo stesso.

VolatileWrite(UInt64, UInt64)

Scrive un valore in un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare prima di questo metodo nel codice, il processore non potrà spostarla in una posizione successiva al metodo stesso.

VolatileWrite(UIntPtr, UIntPtr)

Scrive un valore in un campo. Nei sistemi in cui è richiesto, inserisce una barriera di memoria che impedisce al processore di riordinare le operazioni di memoria nel modo seguente: se un'operazione di lettura o di scrittura compare prima di questo metodo nel codice, il processore non potrà spostarla in una posizione successiva al metodo stesso.

Yield()

Determina che il thread chiamante ceda l'esecuzione a un altro thread pronto per l'esecuzione sul processore corrente. Il sistema operativo seleziona il thread a cui cedere l'esecuzione.

Implementazioni dell'interfaccia esplicita

_Thread.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.

_Thread.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto che può quindi essere usato per ottenere informazioni sul tipo relative a un'interfaccia.

_Thread.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

_Thread.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.

Si applica a

Thread safety

Questo tipo è thread-safe.

Vedi anche