MTAThreadAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wskazuje, że model wątkowy MODELU COM dla aplikacji jest apartamentem wielowątkowym (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
- Atrybuty
Uwagi
Zastosuj ten atrybut do metody punktu wejścia ( Main()
metody w językach 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.
Uwaga
Aby zapoznać się z omówieniem modeli wątków MODELU COM, zobacz Understanding and Using COM Threading Models (Omówienie modeli wątkowania modelu COM i korzystanie z tych modeli).
Modele wątkowania 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 apartament wielowątkowy. 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 międzyoperacyjna com nie jest używana, wątek nie jest inicjowany, a MTAThreadAttribute atrybut, jeśli jest obecny, nie ma żadnego efektu.
Począwszy od programu .NET Framework w wersji 2.0, domyślny model wątkowania 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ątkowania 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.
Niektóre przypadki, w których chcesz użyć atrybutu MTAThreadAttribute do jawnego ustawienia modelu wątkowania na apartament wielowątkowy, obejmują następujące elementy:
Tworzysz aplikację języka Visual Basic, która wywołuje bibliotekę języka C#, która z kolei korzysta z międzyoperacyjności modelu COM. Ponieważ model apartamentów wielowątkowych 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
MTAThreadAttribute() |
Inicjuje nowe wystąpienie klasy MTAThreadAttribute. |
Właściwości
TypeId |
Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu . (Odziedziczone po Attribute) |
Metody
Equals(Object) |
Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi. (Odziedziczone po Attribute) |
GetHashCode() |
Zwraca wartość skrótu dla tego wystąpienia. (Odziedziczone po Attribute) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
IsDefaultAttribute() |
Podczas zastępowania w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej. (Odziedziczone po Attribute) |
Match(Object) |
Po przesłonięciu 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 Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
_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 dla obiektu, który może służyć do pobierania 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) |
Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone po Attribute) |