Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Classe MTAThreadAttribute

 

Data di pubblicazione: ottobre 2016

Indica che il modello di threading COM per un'applicazione è un apartment a thread multipli (MTA).

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

System.Object
  System.Attribute
    System.MTAThreadAttribute

[AttributeUsageAttribute(AttributeTargets.Method)]
[ComVisibleAttribute(true)]
public sealed class MTAThreadAttribute : Attribute

NomeDescrizione
System_CAPS_pubmethodMTAThreadAttribute()

Inizializza una nuova istanza della classe MTAThreadAttribute.

NomeDescrizione
System_CAPS_pubpropertyTypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.(Ereditato da Attribute.)

NomeDescrizione
System_CAPS_pubmethodEquals(Object)

Questa API supporta l'infrastruttura prodotto e non può essere usata direttamente dal codice. Restituisce un valore che indica se questa istanza è uguale ad un oggetto specificato. (Ereditato da Attribute.)

System_CAPS_pubmethodGetHashCode()

Restituisce il codice hash per questa istanza. (Ereditato da Attribute.)

System_CAPS_pubmethodGetType()

Ottiene l'oggetto Type dell'istanza corrente.(Ereditato da Object.)

System_CAPS_pubmethodIsDefaultAttribute()

Quando viene eseguito l'override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata. (Ereditato da Attribute.)

System_CAPS_pubmethodMatch(Object)

Quando viene eseguito l'override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato. (Ereditato da Attribute.)

System_CAPS_pubmethodToString()

Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object.)

NomeDescrizione
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Esegue il mapping di un set di nomi a un corrispondente set di identificatori di dispatch. (Ereditato da Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sui tipi per un oggetto, che possono essere utilizzate per ottenere informazioni sul tipo per un'interfaccia. (Ereditato da Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero di interfacce di informazioni sui tipi che un oggetto fornisce (0 o 1). (Ereditato da Attribute.)

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

Fornisce l'accesso alle proprietà ed ai metodi esposti da un oggetto. (Ereditato da Attribute.)

Applicare questo attributo al metodo del punto di ingresso (il Main() metodo in c# e Visual Basic). Non ha alcun effetto su altri metodi. Per impostare lo stato dell'apartment di thread avviati nel codice, utilizzare il Thread.SetApartmentState o Thread.TrySetApartmentState metodo prima di avviare il thread.

System_CAPS_noteNota

Per una panoramica dei modelli di threading COM, vedere Understanding and Using COM Threading Models.

Modelli di threading COM si applicano solo alle applicazioni che utilizzano l'interoperabilità COM. Il modello di threading COM può essere impostato su apartment a thread singolo o apartment a thread multipli. Il thread dell'applicazione viene inizializzato per l'interoperabilità COM solo se il thread effettivamente effettua una chiamata a un componente COM. Se non viene utilizzata l'interoperabilità COM, quindi il thread non è inizializzato e MTAThreadAttribute attributo, se presente, non ha alcun effetto.

A partire da .NET Framework versione 2.0, il valore predefinito per l'interoperabilità COM modello di threading dipende dal linguaggio in cui si sviluppa l'applicazione, come illustrato nella tabella seguente.

Linguaggio:

Modello di apartment COM

C#

Apartment a thread multipli

C++

Apartment a thread multipli

Visual Basic

Apartment a thread singolo

Per modificare le impostazioni predefinite, utilizzare il MTAThreadAttribute attributo per impostare il modello di threading dell'applicazione o chiamata di Thread.SetApartmentState o Thread.TrySetApartmentState metodo prima di avviare il thread per impostare il modello di threading per un particolare thread. In C++, è inoltre possibile utilizzare il /CLRTHREADATTRIBUTE (Imposta l'attributo thread CLR) l'opzione del linker per specificare il modello di apartment.

Alcuni dei casi in cui si desidera utilizzare il MTAThreadAttribute attributo per impostare in modo esplicito il modello di threading su apartment a thread multipli includono quanto segue:

  • Si sta sviluppando un'applicazione Visual Basic che le chiamate a una libreria di c# che a sua volta si basa sull'interoperabilità COM. Poiché il modello di apartment a thread multipli è l'impostazione predefinita per c#, è consigliabile modificare modello di threading dell'applicazione con multithreading usando il MTAThreadAttribute attributo.

  • L'applicazione effettua chiamate ai componenti COM che utilizzano il modello di apartment a thread multipli.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Windows Phone Silverlight
Disponibile da 8.0
Windows Phone
Disponibile da 8.1

I membri statici pubblici ( Condiviso in Visual Basic) di questo tipo è thread safe. Non tutti i membri di istanza sono garantiti come thread safe.

Torna all'inizio
Mostra: