Questa documentazione è stata archiviata e non viene gestita.

Classe MTAThreadAttribute

Indica che il modello di threading COM per un'applicazione è con multithreading apartment (MTA).

Spazio dei nomi: System
Assembly: mscorlib (in mscorlib.dll)

[AttributeUsageAttribute(AttributeTargets.Method)] 
[ComVisibleAttribute(true)] 
public sealed class MTAThreadAttribute : Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Method) */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class MTAThreadAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Method) 
ComVisibleAttribute(true) 
public final class MTAThreadAttribute 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.

NotaNota

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.

NotaImportante:

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.Object
   System.Attribute
    System.MTAThreadAttribute

I membri statici pubblici (Shared in Visual Basic) di questo tipo sono validi per le operazioni multithreading. I membri di istanza non sono garantiti come thread safe.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, 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.

.NET Framework

Supportato in: 2.0 1.1 1.0

.NET Compact Framework

Supportato in: 2.0
Mostra: