MTAThreadAttribute Klass

Definition

Anger att COM-trådningsmodellen för ett program är multitrådad lägenhet (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
Arv
MTAThreadAttribute
Attribut

Kommentarer

Använd det här attributet på startpunktsmetoden (metoden Main() i C# och Visual Basic). Det har ingen effekt på andra metoder. Om du vill ange lägenhetstillståndet för trådar som du startar i koden använder Thread.SetApartmentState du metoden eller Thread.TrySetApartmentState innan du startar tråden.

Note

En översikt över COM-trådningsmodeller finns i Förstå och använda COM-trådmodeller.

COM-trådmodeller gäller endast för program som använder COM-interop. COM-trådningsmodellen kan ställas in på entrådad lägenhet eller flertrådad lägenhet. Programtråden initieras endast för COM-interop om tråden faktiskt anropar en COM-komponent. Om COM interop inte används initieras inte tråden MTAThreadAttribute och attributet har ingen effekt om det finns.

Från och med .NET Framework version 2.0 beror standardtrådningsmodellen för COM interop på det språk som du utvecklar ditt program på, vilket visas i följande tabell.

Språk COM-lägenhetsmodell
C# Flertrådad lägenhet
C++ Flertrådad lägenhet
Visual Basic Entrådad lägenhet

Om du vill ändra dessa standardvärden använder MTAThreadAttribute du attributet för att ange trådningsmodellen för programmet, eller anropa Thread.SetApartmentState metoden eller Thread.TrySetApartmentState innan du startar tråden för att ange trådmodellen för en viss tråd. I C++kan du också använda länkalternativet /CLRTHREADATTRIBUTE (Ange CLR-trådattribut) för att ange lägenhetsmodellen.

MTAThreadAttribute Använd attributet för att uttryckligen ange trådningsmodellen till flertrådad lägenhet i följande fall:

  • Du utvecklar en Visual Basic app som anropar till ett C#-bibliotek som i sin tur förlitar sig på COM-interop. Eftersom den flertrådade lägenhetsmodellen är standard för C# bör du ändra appens trådningsmodell till flertrådad med hjälp MTAThreadAttribute av attributet.
  • Ditt program anropar COM-komponenter som använder flertrådad lägenhetsmodell.

Konstruktorer

Name Description
MTAThreadAttribute()

Initierar en ny instans av MTAThreadAttribute klassen.

Egenskaper

Name Description
TypeId

När den implementeras i en härledd klass hämtar du en unik identifierare för den här Attribute.

(Ärvd från Attribute)

Metoder

Name Description
Equals(Object)

Returnerar ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
GetHashCode()

Returnerar hash-koden för den här instansen.

(Ärvd från Attribute)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
IsDefaultAttribute()

När den åsidosättas i en härledd klass anger du om värdet för den här instansen är standardvärdet för den härledda klassen.

(Ärvd från Attribute)
Match(Object)

När den åsidosätts i en härledd klass returneras ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

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

Mappar en uppsättning namn till en motsvarande uppsättning av sändningsidentifierare.

(Ärvd från Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hämtar typinformationen för ett objekt, som kan användas för att hämta typinformationen för ett gränssnitt.

(Ärvd från Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hämtar antalet typinformationsgränssnitt som ett objekt tillhandahåller (antingen 0 eller 1).

(Ärvd från Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Ger åtkomst till egenskaper och metoder som exponeras av ett objekt.

(Ärvd från Attribute)

Gäller för

Se även