Assembly: mscorlib (in mscorlib.dll)
<AttributeUsageAttribute(AttributeTargets.Method)> _ <ComVisibleAttribute(True)> _ Public NotInheritable Class STAThreadAttribute Inherits Attribute
Dim instance As STAThreadAttribute
[AttributeUsageAttribute(AttributeTargets.Method)] [ComVisibleAttribute(true)] public sealed class STAThreadAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Method)] [ComVisibleAttribute(true)] public ref class STAThreadAttribute sealed : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Method) */ /** @attribute ComVisibleAttribute(true) */ public final class STAThreadAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Method) ComVisibleAttribute(true) public final class STAThreadAttribute extends Attribute
Applicare questo attributo al metodo del punto di ingresso (il metodo Main() in C# e Visual Basic). Non ha effetto sugli altri metodi. Per impostare lo stato Apartment dei thread avviati nel codice, utilizzare il metodo Thread.SetApartmentState prima di avviare il thread.
Nota |
|---|
| In .NET Framework versioni 1.0 e 1.1 impostare la proprietà Thread.ApartmentState prima di avviare il thread. |
I modelli di threading COM riguardano soltanto applicazioni in cui si utilizza l'interoperabilità COM. L'utilizzo di questo attributo in applicazioni in cui l'interoperabilità COM non è utilizzata non ha alcun effetto.
È possibile impostare il modello di threading COM come apartment con thread singolo o come apartment con multithreading. Il thread dell'applicazione viene inizializzato per l'interoperabilità COM solo se il thread esegue effettivamente una chiamata a un componente COM. Se l'interoperabilità COM non viene utilizzata, il thread non verrà inizializzato.
In .NET Framework versioni 1.0 e 1.1 utilizzare questo attributo su Main() anziché impostare la proprietà Thread.ApartmentState nella prima riga di codice per assicurarsi che il modello di threading sia impostato prima dell'esecuzione di codice di avvio.
Importante: |
|---|
| In .NET Framework versione 2.0 i nuovi thread vengono inizializzati come ApartmentState.MTA se il relativo stato Apartment non è stato impostato prima dell'avvio. Il thread dell'applicazione principale viene inizializzato su ApartmentState.MTA per impostazione predefinita. Non è più possibile impostare il thread dell'applicazione principale su ApartmentState.STA impostando la proprietà Thread.ApartmentState nella prima riga di codice. Utilizzare invece la proprietà STAThreadAttribute. |
In .NET Framework versione 2.0 è inoltre possibile specificare il modello di threading COM per un'applicazione C++ utilizzando l'opzione del linker /CLRTHREADATTRIBUTE (Imposta l'attributo thread CLR).
Nelle applicazioni ASP.NET l'attributo ASPCompat della direttiva @ Page deve essere impostato su true per imporre che la pagina venga servita dal pool di thread STA.
System.Attribute
System.STAThreadAttribute
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.
Nota