MTAThreadAttribute Třída

Definice

Označuje, že model vláken modelu COM pro aplikaci je vícevláknový apartmán (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
MTAThreadAttribute
Atributy

Poznámky

Tento atribut použijte u metody vstupního bodu (Main()metoda 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 zahájením vlákna metodu nebo Thread.TrySetApartmentState metodu.

Poznámka

Přehled modelů vláken modelu COM najdete v tématu Principy a používání modelů vláken modelu COM.

Modely vláken modelu COM se vztahují pouze na aplikace, které používají interoperabilitu modelu COM. Model vláken modelu COM lze nastavit na jednovláknový byt nebo vícevláknový apartmán. Vlákno aplikace je inicializováno pouze pro zprostředkovatele komunikace modelu COM, pokud vlákno ve skutečnosti volá komponentu COM. Pokud se nepoužívá zprostředkovatele komunikace com, vlákno není inicializováno a MTAThreadAttribute atribut, pokud je k dispozici, nemá žádný vliv.

Počínaje .NET Framework verze 2.0 závisí výchozí model vláken pro zprostředkovatele komunikace modelu COM na jazyce, ve kterém vyvíjíte aplikaci, jak ukazuje následující tabulka.

Jazyk Model apartmánu COM
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

Pokud chcete tyto výchozí hodnoty změnit, pomocí atributu MTAThreadAttribute nastavíte model vláken pro aplikaci nebo zavoláte nebo metodu Thread.SetApartmentState Thread.TrySetApartmentState před spuštěním vlákna nastavíte model vláken pro konkrétní vlákno. V jazyce C++ můžete také použít možnost linkeru /CLRTHREADATTRIBUTE (Set CLR Thread Attribute) k určení modelu apartmánu.

Mezi případy, ve kterých chcete atribut použít MTAThreadAttribute k explicitní nastavení modelu threading na vícevláknové apartmány, patří následující:

  • 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 změnit model vláknění aplikace na vícevláknový pomocí atributu MTAThreadAttribute .

  • Aplikace volá komponenty modelu COM, které používají model bytu s více vlákny.

Konstruktory

MTAThreadAttribute()

Inicializuje novou instanci MTAThreadAttribute třídy.

Vlastnosti

TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute.

(Zděděno od Attribute)

Metody

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od Attribute)
GetHashCode()

Vrátí hodnotu hash pro tuto instanci.

(Zděděno od Attribute)
GetType()

Type Získá aktuální instanci.

(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 odvozené třídy.

(Zděděno od Attribute)
Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru 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í

_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 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)

Platí pro

Viz také