Sdílet prostřednictvím


MTAThreadAttribute Třída

Definice

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
MTAThreadAttribute
Atributy

Poznámky

Použijte tento atribut na metodu vstupního bodu ( Main() metoda v jazyce C# a Visual Basic). Nemá žádný vliv na jiné metody. Chcete-li nastavit stav apartment vláken, která spouštíte v kódu, použijte před spuštěním vlákna metodu Thread.SetApartmentState nebo Thread.TrySetApartmentState .

Poznámka

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

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 byt s více vlákny. Vlákno aplikace je inicializováno pouze pro zprostředkovatele komunikace modelu COM, pokud vlákno skutečně provádí volání komponenty modelu COM. Pokud není použita zprostředkovatele komunikace com, vlákno není inicializováno a MTAThreadAttribute atribut, pokud je k dispozici, nemá žádný vliv.

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

Jazyk Model bytu modelu COM
C# Byt s více vlákny
C++ Byt s více vlákny
Visual Basic Jednovláknový byt

Chcete-li změnit tyto výchozí hodnoty, použijte MTAThreadAttribute atribut k nastavení modelu vláken pro aplikaci nebo volání Thread.SetApartmentState metody nebo Thread.TrySetApartmentState před spuštěním vlákna nastavit model vláken pro konkrétní vlákno. V jazyce C++ můžete také použít / CLRTHREADATTRIBUTE (Set CLR Thread Attribute) možnost linkeru k určení modelu bytu.

Mezi případy, ve kterých chcete použít MTAThreadAttribute atribut k explicitnímu nastavení modelu podprocesů na byt s více vlákny, patří následující:

  • Vyvíjíte aplikaci jazyka Visual Basic, která volá knihovnu jazyka C#, která zase spoléhá na interoperabilitu modelu COM. Vzhledem k tomu, že model bytu s více vlákny je výchozím nastavením jazyka C#, měli byste změnit model threadingu vaší aplikace na vícevláknový pomocí atributu .MTAThreadAttribute

  • Aplikace provádí volání komponent modelu COM, které používají vícevláknový model bytu.

Konstruktory

MTAThreadAttribute()

Inicializuje novou instanci MTAThreadAttribute třídy .

Vlastnosti

TypeId

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

(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á z aktuální instance.

(Zděděno od Object)
IsDefaultAttribute()

Při přepsání v odvozené třídě označuje, zda je hodnota této instance 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á označuje, zda se tato instance rovná zadanému objektu.

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

Vytvoří mělkou kopii aktuálního Objectsouboru .

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

Platí pro

Viz také