MTAThreadAttribute Osztály

Definíció

Azt jelzi, hogy egy alkalmazás COM menetmodellje többszálú lakás (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
Öröklődés
MTAThreadAttribute
Attribútumok

Megjegyzések

Alkalmazza ezt az attribútumot a belépési pont metódusára (a Main() metódusra C# és Visual Basic). Nincs hatása más módszerekre. A kódban kezdődő szálak lakásállapotának beállításához használja a Thread.SetApartmentState metódust a Thread.TrySetApartmentState szál indítása előtt.

A COM-szálmodellek csak a COM-interopt használó alkalmazásokra vonatkoznak. A COM menetmodell egyszálas lakásra vagy többszálú lakásra állítható be. Az alkalmazásszál csak akkor inicializálódik a COM-interophoz, ha a szál valójában egy COM-összetevőre irányuló hívást kezdeményez. Ha a COM-interop nem használatos, akkor a szál nincs inicializálva, és az MTAThreadAttribute attribútumnak, ha van, nincs hatása.

Az .NET Framework 2.0-s verziójától kezdve a COM interop alapértelmezett szálmodellje attól függ, hogy milyen nyelven fejleszti az alkalmazást, ahogy az alábbi táblázat is mutatja.

Nyelv COM apartmanmodell
C# Többszálas apartman
C++ Többszálas apartman
Visual Basic Egyszálas apartman

Az alapértelmezett beállítások módosításához az MTAThreadAttribute attribútum használatával állítsa be az alkalmazás szálmodellét, vagy hívja meg a Thread.SetApartmentStateThread.TrySetApartmentState metódust, mielőtt elindítja a szálat egy adott szál szálmodelljének beállításához. A C++-ban a /CLRTHREADATTRIBUTE (CLR Thread Attribute beállítása) linkerrel is megadhatja a lakásmodellt.

MTAThreadAttribute Az attribútum használatával explicit módon állítsa a szálmodellt többszálú lakásra a következő esetekben:

  • Olyan Visual Basic alkalmazást fejleszt, amely egy C#-kódtárat hív meg, amely viszont COM-interopra támaszkodik. Mivel a C# esetében a többszálas lakásmodell az alapértelmezett, az attribútum használatával MTAThreadAttribute módosítsa az alkalmazás szálmodelljét többszálúra.
  • Az alkalmazás a többszálú lakásmodellt használó COM-összetevőkhöz indít hívásokat.

Konstruktorok

Name Description
MTAThreadAttribute()

Inicializálja a MTAThreadAttribute osztály új példányát.

Tulajdonságok

Name Description
TypeId

Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap.

(Öröklődés forrása Attribute)

Metódusok

Name Description
Equals(Object)

Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy adott objektummal.

(Öröklődés forrása Attribute)
GetHashCode()

A példány kivonatkódját adja vissza.

(Öröklődés forrása Attribute)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IsDefaultAttribute()

Ha egy származtatott osztályban felül van bírálva, azt jelzi, hogy a példány értéke-e a származtatott osztály alapértelmezett értéke.

(Öröklődés forrása Attribute)
Match(Object)

Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e.

(Öröklődés forrása Attribute)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

Name Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Névkészletet képez le a küldési azonosítók megfelelő készletére.

(Öröklődés forrása Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Lekéri egy objektum típusadatait, amelyek a felület típusadatainak lekérésére használhatók.

(Öröklődés forrása Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1).

(Öröklődés forrása Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz.

(Öröklődés forrása Attribute)

A következőre érvényes:

Lásd még