Bagikan melalui


MTAThreadAttribute Kelas

Definisi

Menunjukkan bahwa model utas COM untuk aplikasi adalah apartemen multithreaded (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
Warisan
MTAThreadAttribute
Atribut

Keterangan

Terapkan atribut ini ke metode titik masuk ( Main() metode di C# dan Visual Basic). Ini tidak berpengaruh pada metode lain. Untuk mengatur status rangkaian apartemen yang Anda mulai dalam kode Anda, gunakan Thread.SetApartmentState metode atau Thread.TrySetApartmentState sebelum memulai utas.

Catatan

Untuk gambaran umum model utas COM, lihat Memahami dan Menggunakan Model Utas COM.

Model utas COM hanya berlaku untuk aplikasi yang menggunakan interop COM. Model utas COM dapat diatur ke apartemen berulir tunggal atau apartemen multithreaded. Utas aplikasi hanya diinisialisasi untuk interop COM jika utas benar-benar melakukan panggilan ke komponen COM. Jika interop COM tidak digunakan, maka utas tidak diinisialisasi, dan MTAThreadAttribute atribut , jika ada, tidak berpengaruh.

Dimulai dengan .NET Framework versi 2.0, model utas default untuk interop COM bergantung pada bahasa tempat Anda mengembangkan aplikasi, seperti yang ditunjukkan tabel berikut.

Bahasa Model apartemen COM
C# Apartemen multithreaded
C++ Apartemen multithreaded
Visual Basic Apartemen berulir tunggal

Untuk mengubah default ini, Anda menggunakan MTAThreadAttribute atribut untuk mengatur model utas untuk aplikasi, atau memanggil Thread.SetApartmentState metode atau Thread.TrySetApartmentState sebelum memulai utas untuk mengatur model utas untuk utas tertentu. Di C++, Anda juga dapat menggunakan opsi linker /CLRTHREADATTRIBUTE (Set CLR Thread Attribute) untuk menentukan model apartemen.

Beberapa kasus di mana Anda ingin menggunakan MTAThreadAttribute atribut untuk secara eksplisit mengatur model utas ke apartemen multithreaded meliputi yang berikut ini:

  • Anda mengembangkan aplikasi Visual Basic yang memanggil ke pustaka C# yang pada gilirannya bergantung pada interop COM. Karena model apartemen multithreaded adalah default untuk C#, Anda harus mengubah model utas aplikasi Anda menjadi multithreaded dengan menggunakan MTAThreadAttribute atribut .

  • Aplikasi Anda melakukan panggilan ke komponen COM yang menggunakan model apartemen multithreaded.

Konstruktor

MTAThreadAttribute()

Menginisialisasi instans baru kelas MTAThreadAttribute.

Properti

TypeId

Ketika diimplementasikan di kelas turunan, mendapatkan pengidentifikasi unik untuk ini Attribute.

(Diperoleh dari Attribute)

Metode

Equals(Object)

Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
GetHashCode()

Mengembalikan kode hash untuk instans ini.

(Diperoleh dari Attribute)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
IsDefaultAttribute()

Ketika ditimpa di kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan.

(Diperoleh dari Attribute)
Match(Object)

Saat ditimpa di kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

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

Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1).

(Diperoleh dari Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Menyediakan akses ke properti dan metode yang diekspos oleh objek.

(Diperoleh dari Attribute)

Berlaku untuk

Lihat juga