MTAThreadAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Označuje, že model vláken MODELU COM pro aplikaci je vícevláknový byt (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
- Dědičnost
- Atributy
Poznámky
Tento atribut použijte u metody vstupního bodu (metoda Main() v jazyce C# a Visual Basic). Nemá žádný vliv na jiné metody. Chcete-li nastavit stav bytu vláken, které začínáte v kódu, použijte Thread.SetApartmentState před spuštěním vlákna metodu nebo Thread.TrySetApartmentState metodu.
Modely vláken modelu COM se vztahují pouze na aplikace, které používají zprostředkovatele komunikace modelu COM. Model vláken MODELU COM lze nastavit na jednovláknový byt nebo vícevláknový byt. Vlákno aplikace je inicializováno pouze pro interoperabilitu modelu COM, pokud vlákno ve skutečnosti volá komponentu COM. Pokud se zprostředkovatel komunikace modelu COM nepoužívá, vlákno není inicializováno a MTAThreadAttribute atribut, pokud je k dispozici, nemá žádný vliv.
Výchozí model vláken pro interoperabilitu modelu COM závisí na jazyce, ve kterém vyvíjíte aplikaci, jak ukazuje následující tabulka.
| Jazyk | Model bytu modelu COM |
|---|---|
| jazyk C# | Apartmán s více vlákny |
| C++ | Apartmán s více vlákny |
| Visual Basic | Apartmán s jedním vláknem |
Chcete-li změnit tato výchozí nastavení, pomocí MTAThreadAttribute atributu nastavíte model threadingu pro aplikaci nebo zavoláte Thread.SetApartmentState metodu nebo Thread.TrySetApartmentState před spuštěním vlákna nastavíte model podprocesu pro konkrétní vlákno. V jazyce C++ můžete také použít možnost linkeru /CLRTHREADATTRIBUTE (Nastavit atribut vlákna CLR) k určení modelu apartmánu.
Pomocí atributu MTAThreadAttribute explicitně nastavte model threadingu na vícevláknové apartmány v následujících případech:
- Vyvíjíte aplikaci Visual Basic, která volá knihovnu jazyka C#, která zase spoléhá na interoperabilitu modelu COM. Vzhledem k tomu, že model vícevláknového apartmánu je výchozím nastavením jazyka C#, měli byste pomocí atributu MTAThreadAttribute změnit model vláknit aplikace na vícevláknový.
- Vaše aplikace volá komponenty modelu COM, které používají model vícevláknového bytu.
Konstruktory
| Name | Description |
|---|---|
| MTAThreadAttribute() |
Inicializuje novou instanci MTAThreadAttribute třídy. |
Vlastnosti
| Name | Description |
|---|---|
| TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute. (Zděděno od Attribute) |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Vrátí hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od Attribute) |
| GetHashCode() |
Vrátí kód hash pro tuto instanci. (Zděděno od Attribute) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| IsDefaultAttribute() |
Při přepsání v odvozené třídě určuje, zda hodnota této instance je výchozí hodnotou pro odvozenou třídu. (Zděděno od Attribute) |
| Match(Object) |
Při přepsání v odvozené třídě vrátí hodnotu, která určuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání. (Zděděno od Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní. (Zděděno od Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1). (Zděděno od Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Poskytuje přístup k vlastnostem a metodám vystaveným objektem. (Zděděno od Attribute) |