Bagikan melalui


Thread Kelas

Definisi

Membuat dan mengontrol utas, menetapkan prioritasnya, dan mendapatkan statusnya.

public ref class Thread sealed : System::Runtime::ConstrainedExecution::CriticalFinalizerObject
public ref class Thread sealed
public ref class Thread sealed : System::Runtime::InteropServices::_Thread
public ref class Thread sealed : System::Runtime::ConstrainedExecution::CriticalFinalizerObject, System::Runtime::InteropServices::_Thread
public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Thread
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Thread : System.Runtime.InteropServices._Thread
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.Runtime.InteropServices._Thread
type Thread = class
    inherit CriticalFinalizerObject
[<System.Runtime.InteropServices.ComVisible(true)>]
type Thread = class
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Thread = class
    interface _Thread
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Thread = class
    inherit CriticalFinalizerObject
    interface _Thread
Public NotInheritable Class Thread
Inherits CriticalFinalizerObject
Public NotInheritable Class Thread
Public NotInheritable Class Thread
Implements _Thread
Public NotInheritable Class Thread
Inherits CriticalFinalizerObject
Implements _Thread
Warisan
Warisan
Thread
Atribut
Penerapan

Keterangan

Untuk informasi selengkapnya tentang API ini, lihat Keterangan API Tambahan untuk Utas.

Konstruktor

Thread(ParameterizedThreadStart)

Menginisialisasi instans Thread baru kelas, menentukan delegasi yang memungkinkan objek diteruskan ke utas saat utas dimulai.

Thread(ParameterizedThreadStart, Int32)

Menginisialisasi instans Thread baru kelas , menentukan delegasi yang memungkinkan objek diteruskan ke utas saat utas dimulai dan menentukan ukuran tumpukan maksimum untuk utas.

Thread(ThreadStart)

Menginisialisasi instans baru kelas Thread.

Thread(ThreadStart, Int32)

Menginisialisasi instans Thread baru kelas , menentukan ukuran tumpukan maksimum untuk utas.

Properti

ApartmentState
Kedaluwarsa.
Kedaluwarsa.

Mendapatkan atau menetapkan status apartemen utas ini.

CurrentContext

Mendapatkan konteks saat ini di mana utas dijalankan.

CurrentCulture

Mendapatkan atau mengatur budaya untuk utas saat ini.

CurrentPrincipal

Mendapatkan atau mengatur prinsipal utas saat ini (untuk keamanan berbasis peran).

CurrentThread

Mendapatkan utas yang sedang berjalan.

CurrentUICulture

Mendapatkan atau mengatur budaya saat ini yang digunakan oleh Resource Manager untuk mencari sumber daya khusus budaya pada durasi.

ExecutionContext

Mendapatkan objek yang ExecutionContext berisi informasi tentang berbagai konteks utas saat ini.

IsAlive

Mendapatkan nilai yang menunjukkan status eksekusi utas saat ini.

IsBackground

Mendapatkan atau menetapkan nilai yang menunjukkan apakah utas adalah utas latar belakang atau tidak.

IsThreadPoolThread

Mendapatkan nilai yang menunjukkan apakah utas milik kumpulan utas terkelola atau tidak.

ManagedThreadId

Mendapatkan pengidentifikasi unik untuk utas terkelola saat ini.

Name

Mendapatkan atau mengatur nama utas.

Priority

Mendapatkan atau menetapkan nilai yang menunjukkan prioritas penjadwalan utas.

ThreadState

Mendapatkan nilai yang berisi status utas saat ini.

Metode

Abort()
Kedaluwarsa.

Menaikkan di utas ThreadAbortException tempat alur dipanggil, untuk memulai proses penghentian utas. Memanggil metode ini biasanya mengakhiri utas.

Abort(Object)
Kedaluwarsa.

Menaikkan di utas tempat alur dipanggil, untuk memulai proses penghentian utas ThreadAbortException sambil juga memberikan informasi pengecualian tentang penghentian utas. Memanggil metode ini biasanya mengakhiri utas.

AllocateDataSlot()

Mengalokasikan slot data yang tidak disebutkan namanya di semua utas. Untuk performa yang lebih baik, gunakan bidang yang ditandai dengan ThreadStaticAttribute atribut sebagai gantinya.

AllocateNamedDataSlot(String)

Mengalokasikan slot data bernama pada semua utas. Untuk performa yang lebih baik, gunakan bidang yang ditandai dengan ThreadStaticAttribute atribut sebagai gantinya.

BeginCriticalRegion()

Memberi tahu host bahwa eksekusi akan memasuki wilayah kode di mana efek utas membatalkan atau pengecualian yang tidak tertangani mungkin membahayakan tugas lain di domain aplikasi.

BeginThreadAffinity()

Memberi tahu host bahwa kode terkelola akan menjalankan instruksi yang bergantung pada identitas utas sistem operasi fisik saat ini.

DisableComObjectEagerCleanup()

Menonaktifkan pembersihan otomatis pembungkus yang dapat dipanggil runtime (RCW) untuk utas saat ini.

EndCriticalRegion()

Memberi tahu host bahwa eksekusi akan memasuki wilayah kode di mana efek utas membatalkan atau pengecualian yang tidak tertangani terbatas pada tugas saat ini.

EndThreadAffinity()

Memberi tahu host bahwa kode terkelola telah selesai menjalankan instruksi yang bergantung pada identitas utas sistem operasi fisik saat ini.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
Finalize()

Memastikan bahwa sumber daya dibebaskan dan operasi pembersihan lainnya dilakukan ketika pengumpul sampah merebut Thread kembali objek.

FreeNamedDataSlot(String)

Menghilangkan hubungan antara nama dan slot, untuk semua utas dalam proses. Untuk performa yang lebih baik, gunakan bidang yang ditandai dengan ThreadStaticAttribute atribut sebagai gantinya.

GetApartmentState()

Mengembalikan nilai yang ApartmentState menunjukkan status apartemen.

GetCompressedStack()
Kedaluwarsa.
Kedaluwarsa.

Mengembalikan objek yang dapat digunakan untuk mengambil tumpukan untuk utas CompressedStack saat ini.

GetCurrentProcessorId()

Mendapatkan ID yang digunakan untuk menunjukkan prosesor mana yang dijalankan utas saat ini.

GetData(LocalDataStoreSlot)

Mengambil nilai dari slot yang ditentukan pada utas saat ini, dalam domain utas saat ini. Untuk performa yang lebih baik, gunakan bidang yang ditandai dengan ThreadStaticAttribute atribut sebagai gantinya.

GetDomain()

Mengembalikan domain saat ini tempat utas saat ini berjalan.

GetDomainID()

Mengembalikan pengidentifikasi domain aplikasi yang unik.

GetHashCode()

Mengembalikan kode hash untuk utas saat ini.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetNamedDataSlot(String)

Mencari slot data bernama. Untuk performa yang lebih baik, gunakan bidang yang ditandai dengan ThreadStaticAttribute atribut sebagai gantinya.

GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
Interrupt()

Mengganggu utas yang berada dalam WaitSleepJoin status utas.

Join()

Memblokir utas panggilan hingga utas yang diwakili oleh instans ini berakhir, sambil terus melakukan COM standar dan SendMessage pemompaan.

Join(Int32)

Memblokir utas panggilan hingga utas yang diwakili oleh instans ini berakhir atau waktu yang ditentukan berlalu, sambil terus melakukan pemompaan COM dan SendMessage standar.

Join(TimeSpan)

Memblokir utas panggilan hingga utas yang diwakili oleh instans ini berakhir atau waktu yang ditentukan berlalu, sambil terus melakukan pemompaan COM dan SendMessage standar.

MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
MemoryBarrier()

Menyinkronkan akses memori sebagai berikut: Prosesor yang menjalankan utas saat ini tidak dapat menyusun ulang instruksi sedih sehingga memori mengakses sebelum panggilan untuk MemoryBarrier() dieksekusi setelah akses memori yang mengikuti panggilan ke MemoryBarrier().

ResetAbort()
Kedaluwarsa.

Membatalkan yang Abort(Object) diminta untuk utas saat ini.

Resume()
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.

Melanjutkan utas yang telah ditangguhkan.

SetApartmentState(ApartmentState)

Mengatur status apartemen utas sebelum dimulai.

SetCompressedStack(CompressedStack)
Kedaluwarsa.
Kedaluwarsa.

Menerapkan yang diambil CompressedStack ke utas saat ini.

SetData(LocalDataStoreSlot, Object)

Mengatur data di slot yang ditentukan pada utas yang sedang berjalan, untuk domain utas saat ini. Untuk performa yang lebih baik, gunakan bidang yang ditandai dengan atribut sebagai gantinya ThreadStaticAttribute .

Sleep(Int32)

Menangguhkan utas saat ini untuk jumlah milidetik yang ditentukan.

Sleep(TimeSpan)

Menangguhkan utas saat ini untuk jumlah waktu yang ditentukan.

SpinWait(Int32)

Menyebabkan utas menunggu berapa kali ditentukan oleh iterations parameter .

Start()

Menyebabkan sistem operasi mengubah status instans saat ini menjadi Running.

Start(Object)

Menyebabkan sistem operasi mengubah status instans saat ini menjadi Running, dan secara opsional memasok objek yang berisi data untuk digunakan oleh metode yang dijalankan utas.

Suspend()
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.

Menangguhkan utas, atau jika utas sudah ditangguhkan, tidak berpengaruh.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
TrySetApartmentState(ApartmentState)

Mengatur status apartemen utas sebelum dimulai.

UnsafeStart()

Menyebabkan sistem operasi mengubah status instans saat ini menjadi Running.

UnsafeStart(Object)

Menyebabkan sistem operasi mengubah status instans saat ini menjadi Running, dan secara opsional memasok objek yang berisi data untuk digunakan oleh metode yang dijalankan utas.

VolatileRead(Byte)
Kedaluwarsa.

Membaca nilai bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul setelah metode ini dalam kode, prosesor tidak dapat memindahkannya sebelum metode ini.

VolatileRead(Double)
Kedaluwarsa.

Membaca nilai bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul setelah metode ini dalam kode, prosesor tidak dapat memindahkannya sebelum metode ini.

VolatileRead(Int16)
Kedaluwarsa.

Membaca nilai bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul setelah metode ini dalam kode, prosesor tidak dapat memindahkannya sebelum metode ini.

VolatileRead(Int32)
Kedaluwarsa.

Membaca nilai bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul setelah metode ini dalam kode, prosesor tidak dapat memindahkannya sebelum metode ini.

VolatileRead(Int64)
Kedaluwarsa.

Membaca nilai bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul setelah metode ini dalam kode, prosesor tidak dapat memindahkannya sebelum metode ini.

VolatileRead(IntPtr)
Kedaluwarsa.

Membaca nilai bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul setelah metode ini dalam kode, prosesor tidak dapat memindahkannya sebelum metode ini.

VolatileRead(Object)
Kedaluwarsa.

Membaca nilai bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul setelah metode ini dalam kode, prosesor tidak dapat memindahkannya sebelum metode ini.

VolatileRead(SByte)
Kedaluwarsa.

Membaca nilai bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul setelah metode ini dalam kode, prosesor tidak dapat memindahkannya sebelum metode ini.

VolatileRead(Single)
Kedaluwarsa.

Membaca nilai bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul setelah metode ini dalam kode, prosesor tidak dapat memindahkannya sebelum metode ini.

VolatileRead(UInt16)
Kedaluwarsa.

Membaca nilai bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul setelah metode ini dalam kode, prosesor tidak dapat memindahkannya sebelum metode ini.

VolatileRead(UInt32)
Kedaluwarsa.

Membaca nilai bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul setelah metode ini dalam kode, prosesor tidak dapat memindahkannya sebelum metode ini.

VolatileRead(UInt64)
Kedaluwarsa.

Membaca nilai bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul setelah metode ini dalam kode, prosesor tidak dapat memindahkannya sebelum metode ini.

VolatileRead(UIntPtr)
Kedaluwarsa.

Membaca nilai bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul setelah metode ini dalam kode, prosesor tidak dapat memindahkannya sebelum metode ini.

VolatileWrite(Byte, Byte)
Kedaluwarsa.

Menulis nilai ke bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul sebelum metode ini dalam kode, prosesor tidak dapat memindahkannya setelah metode ini.

VolatileWrite(Double, Double)
Kedaluwarsa.

Menulis nilai ke bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul sebelum metode ini dalam kode, prosesor tidak dapat memindahkannya setelah metode ini.

VolatileWrite(Int16, Int16)
Kedaluwarsa.

Menulis nilai ke bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul sebelum metode ini dalam kode, prosesor tidak dapat memindahkannya setelah metode ini.

VolatileWrite(Int32, Int32)
Kedaluwarsa.

Menulis nilai ke bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul sebelum metode ini dalam kode, prosesor tidak dapat memindahkannya setelah metode ini.

VolatileWrite(Int64, Int64)
Kedaluwarsa.

Menulis nilai ke bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul sebelum metode ini dalam kode, prosesor tidak dapat memindahkannya setelah metode ini.

VolatileWrite(IntPtr, IntPtr)
Kedaluwarsa.

Menulis nilai ke bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul sebelum metode ini dalam kode, prosesor tidak dapat memindahkannya setelah metode ini.

VolatileWrite(Object, Object)
Kedaluwarsa.

Menulis nilai ke bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul sebelum metode ini dalam kode, prosesor tidak dapat memindahkannya setelah metode ini.

VolatileWrite(SByte, SByte)
Kedaluwarsa.

Menulis nilai ke bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul sebelum metode ini dalam kode, prosesor tidak dapat memindahkannya setelah metode ini.

VolatileWrite(Single, Single)
Kedaluwarsa.

Menulis nilai ke bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul sebelum metode ini dalam kode, prosesor tidak dapat memindahkannya setelah metode ini.

VolatileWrite(UInt16, UInt16)
Kedaluwarsa.

Menulis nilai ke bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul sebelum metode ini dalam kode, prosesor tidak dapat memindahkannya setelah metode ini.

VolatileWrite(UInt32, UInt32)
Kedaluwarsa.

Menulis nilai ke bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul sebelum metode ini dalam kode, prosesor tidak dapat memindahkannya setelah metode ini.

VolatileWrite(UInt64, UInt64)
Kedaluwarsa.

Menulis nilai ke bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul sebelum metode ini dalam kode, prosesor tidak dapat memindahkannya setelah metode ini.

VolatileWrite(UIntPtr, UIntPtr)
Kedaluwarsa.

Menulis nilai ke bidang. Pada sistem yang memerlukannya, menyisipkan penghalang memori yang mencegah prosesor menyusun ulang operasi memori sebagai berikut: Jika baca atau tulis muncul sebelum metode ini dalam kode, prosesor tidak dapat memindahkannya setelah metode ini.

Yield()

Menyebabkan utas panggilan menghasilkan eksekusi ke utas lain yang siap dijalankan pada prosesor saat ini. Sistem operasi memilih utas yang akan dihasilkan.

Implementasi Antarmuka Eksplisit

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

Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai.

_Thread.GetTypeInfo(UInt32, UInt32, IntPtr)

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

_Thread.GetTypeInfoCount(UInt32)

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

_Thread.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Menyediakan akses ke properti dan metode yang diekspos oleh objek.

Berlaku untuk

Keamanan Thread

Jenis ini aman untuk utas.

Lihat juga