Udostępnij za pośrednictwem


MTAThreadAttribute Klasa

Definicja

Wskazuje, że model wątkowania COM dla aplikacji jest wielowątkowym apartamentem (MTA).

public ref class MTAThreadAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method)]
public sealed class MTAThreadAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Method)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class MTAThreadAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method)>]
type MTAThreadAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Method)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MTAThreadAttribute = class
    inherit Attribute
Public NotInheritable Class MTAThreadAttribute
Inherits Attribute
Dziedziczenie
MTAThreadAttribute
Atrybuty

Uwagi

Zastosuj ten atrybut do metody punktu wejścia (metoda Main() w języku C# i Visual Basic). Nie ma wpływu na inne metody. Aby ustawić stan mieszkania wątków uruchamianych w kodzie, użyj Thread.SetApartmentState metody or Thread.TrySetApartmentState przed rozpoczęciem wątku.

Modele wątkowe MODELU COM mają zastosowanie tylko do aplikacji korzystających z międzyoperacyjnego modelu COM. Model wątkowania COM można ustawić na jednowątkowy apartament lub wielowątkowy apartament. Wątek aplikacji jest inicjowany tylko dla międzyoperacyjnego modelu COM, jeśli wątek rzeczywiście wykonuje wywołanie składnika COM. Jeśli interop COM nie jest używany, wątek nie jest inicjowany, a MTAThreadAttribute atrybut, jeśli jest obecny, nie ma wpływu.

Domyślny model wątków dla międzyoperacyjności modelu COM zależy od języka, w którym tworzysz aplikację, jak pokazano w poniższej tabeli.

Język Model apartamentów COM
C# Apartament wielowątkowy
C++ Apartament wielowątkowy
Visual Basic Jednowątkowy apartament

Aby zmienić te wartości domyślne, należy użyć atrybutu MTAThreadAttribute , aby ustawić model wątków dla aplikacji lub wywołać Thread.SetApartmentState metodę lub Thread.TrySetApartmentState przed uruchomieniem wątku, aby ustawić model wątków dla określonego wątku. W języku C++można również użyć opcji konsolidatora /CLRTHREADATTRIBUTE (Ustaw atrybut wątku CLR) w celu określenia modelu mieszkania.

Użyj atrybutu MTAThreadAttribute , aby jawnie ustawić model wątków na wielowątkowy apartament w następujących przypadkach:

  • Tworzysz aplikację Visual Basic, która wywołuje bibliotekę języka C#, która z kolei korzysta z międzyoperacyjności modelu COM. Ponieważ wielowątkowy model apartamentu jest domyślny dla języka C#, należy zmienić model wątków aplikacji na wielowątkowy przy użyciu atrybutu MTAThreadAttribute .
  • Aplikacja wykonuje wywołania składników COM korzystających z wielowątkowego modelu apartamentów.

Konstruktory

Nazwa Opis
MTAThreadAttribute()

Inicjuje nowe wystąpienie klasy MTAThreadAttribute.

Właściwości

Nazwa Opis
TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attribute.

(Odziedziczone po Attribute)

Metody

Nazwa Opis
Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca kod skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()

Po zastąpieniu w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

Po zastąpieniu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

Nazwa Opis
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie obiektu, którego można użyć do uzyskania informacji o typie dla interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Zapewnia dostęp do właściwości i metod uwidocznionych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy

Zobacz też