Bagikan melalui


Struktur IUMSThreadProxy

Abstraksi untuk utas eksekusi. Jika Anda ingin penjadwal Anda diberikan utas schedulable mode pengguna (UMS), atur nilai untuk elemen kebijakan penjadwal SchedulerKind ke UmsThreadDefault, dan terapkan IUMSScheduler antarmuka. Utas UMS hanya didukung pada sistem operasi 64-bit dengan versi Windows 7 dan yang lebih tinggi.

Sintaks

struct IUMSThreadProxy : public IThreadProxy;

Anggota

Metode Publik

Nama Deskripsi
IUMSThreadProxy::EnterCriticalRegion Dipanggil untuk memasuki wilayah penting. Ketika berada di dalam wilayah penting, penjadwal tidak akan mengamati operasi pemblokiran asinkron yang terjadi selama wilayah tersebut. Ini berarti bahwa penjadwal tidak akan dimasukkan kembali untuk kesalahan halaman, penangguhan utas, panggilan prosedur asinkron kernel (APC), dan sebagainya, untuk utas UMS.
IUMSThreadProxy::EnterHyperCriticalRegion Dipanggil untuk memasuki wilayah hyper-critical. Ketika berada di dalam wilayah hyper-critical, penjadwal tidak akan mengamati operasi pemblokiran apa pun yang terjadi selama wilayah tersebut. Ini berarti penjadwal tidak akan dimasukkan kembali untuk memblokir panggilan fungsi, upaya akuisisi kunci yang memblokir, kesalahan halaman, penangguhan utas, panggilan prosedur asinkron kernel (APC), dan sebagainya, untuk utas UMS.
IUMSThreadProxy::ExitCriticalRegion Dipanggil untuk keluar dari wilayah penting.
IUMSThreadProxy::ExitHyperCriticalRegion Dipanggil untuk keluar dari wilayah hyper-critical.
IUMSThreadProxy::GetCriticalRegionType Mengembalikan jenis wilayah penting tempat proksi utas berada. Karena wilayah hyper-critical adalah superset wilayah penting, jika kode telah memasuki wilayah penting dan kemudian wilayah hyper-critical, InsideHyperCriticalRegion akan dikembalikan.

Hierarki Warisan

IThreadProxy

IUMSThreadProxy

Persyaratan

Header: concrtrm.h

Namespace: konkurensi

IUMSThreadProxy::EnterCriticalRegion Method

Dipanggil untuk memasuki wilayah penting. Ketika berada di dalam wilayah penting, penjadwal tidak akan mengamati operasi pemblokiran asinkron yang terjadi selama wilayah tersebut. Ini berarti bahwa penjadwal tidak akan dimasukkan kembali untuk kesalahan halaman, penangguhan utas, panggilan prosedur asinkron kernel (APC), dan sebagainya, untuk utas UMS.

virtual int EnterCriticalRegion() = 0;

Tampilkan Nilai

Kedalaman baru wilayah kritis. Wilayah kritis bersifat reentrant.

IUMSThreadProxy::EnterHyperCriticalRegion Method

Dipanggil untuk memasuki wilayah hyper-critical. Ketika berada di dalam wilayah hyper-critical, penjadwal tidak akan mengamati operasi pemblokiran apa pun yang terjadi selama wilayah tersebut. Ini berarti penjadwal tidak akan dimasukkan kembali untuk memblokir panggilan fungsi, upaya akuisisi kunci yang memblokir, kesalahan halaman, penangguhan utas, panggilan prosedur asinkron kernel (APC), dan sebagainya, untuk utas UMS.

virtual int EnterHyperCriticalRegion() = 0;

Tampilkan Nilai

Kedalaman baru wilayah hyper-critical. Wilayah hyper-critical bersifat reentrant.

Keterangan

Penjadwal harus sangat berhati-hati tentang metode apa yang disebutnya dan kunci apa yang diperolehnya di wilayah tersebut. Jika kode di wilayah tersebut memblokir kunci yang dipegang oleh sesuatu yang bertanggung jawab penjadwalan, kebuntuan dapat terjadi.

IUMSThreadProxy::Metode ExitCriticalRegion

Dipanggil untuk keluar dari wilayah penting.

virtual int ExitCriticalRegion() = 0;

Tampilkan Nilai

Kedalaman baru wilayah kritis. Wilayah kritis bersifat reentrant.

IUMSThreadProxy::Metode ExitHyperCriticalRegion

Dipanggil untuk keluar dari wilayah hyper-critical.

virtual int ExitHyperCriticalRegion() = 0;

Tampilkan Nilai

Kedalaman baru wilayah hyper-critical. Wilayah hyper-critical bersifat reentrant.

IUMSThreadProxy::GetCriticalRegionType Method

Mengembalikan jenis wilayah penting tempat proksi utas berada. Karena wilayah hyper-critical adalah superset wilayah penting, jika kode telah memasuki wilayah penting dan kemudian wilayah hyper-critical, InsideHyperCriticalRegion akan dikembalikan.

virtual CriticalRegionType GetCriticalRegionType() const = 0;

Tampilkan Nilai

Jenis wilayah penting tempat proksi utas berada.

Lihat juga

Namespace layanan konkurensi
Struktur IUMSScheduler