MTAThreadAttribute Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
- 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.
Note
A COM-szálmodellek áttekintését a COM szálmodellek ismertetése és használata című témakörben tekintheti meg.
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) |