Kelas CurrentScheduler
Mewakili abstraksi untuk penjadwal saat ini yang terkait dengan konteks panggilan.
Sintaks
class CurrentScheduler;
Anggota
Metode Publik
Nama | Deskripsi |
---|---|
Buat | Membuat penjadwal baru yang perilakunya dijelaskan oleh _Policy parameter dan melampirkannya ke konteks panggilan. Penjadwal yang baru dibuat akan menjadi penjadwal saat ini untuk konteks panggilan. |
CreateScheduleGroup | Kelebihan beban. Membuat grup jadwal baru dalam penjadwal yang terkait dengan konteks panggilan. Versi yang mengambil parameter _Placement menyebabkan tugas dalam grup jadwal yang baru dibuat menjadi bias untuk dieksekusi di lokasi yang ditentukan oleh parameter tersebut. |
Melepaskan | Melepaskan penjadwal saat ini dari konteks panggilan dan memulihkan penjadwal yang terpasang sebelumnya sebagai penjadwal saat ini, jika ada. Setelah metode ini kembali, konteks panggilan kemudian dikelola oleh penjadwal yang sebelumnya dilampirkan ke konteks menggunakan CurrentScheduler::Create metode atau Scheduler::Attach . |
Dapatkan | Mengembalikan penunjuk ke penjadwal yang terkait dengan konteks panggilan, juga disebut sebagai penjadwal saat ini. |
GetNumberOfVirtualProcessors | Mengembalikan jumlah prosesor virtual saat ini untuk penjadwal yang terkait dengan konteks panggilan. |
GetPolicy | Mengembalikan salinan kebijakan yang dibuat oleh penjadwal saat ini. |
Id | Mengembalikan pengidentifikasi unik untuk penjadwal saat ini. |
IsAvailableLocation | Menentukan apakah lokasi tertentu tersedia pada penjadwal saat ini. |
RegisterShutdownEvent | Menyebabkan handel peristiwa Windows yang diteruskan dalam _ShutdownEvent parameter diberi sinyal ketika penjadwal yang terkait dengan konteks saat ini dimatikan dan menghancurkan dirinya sendiri. Pada saat acara disinyalir, semua pekerjaan yang telah dijadwalkan ke penjadwal selesai. Beberapa peristiwa matikan dapat didaftarkan melalui metode ini. |
ScheduleTask | Kelebihan beban. Menjadwalkan tugas ringan dalam penjadwal yang terkait dengan konteks panggilan. Tugas ringan akan ditempatkan dalam grup jadwal yang ditentukan oleh runtime. Versi yang mengambil parameter _Placement menyebabkan tugas menjadi bias untuk dieksekusi di lokasi yang ditentukan. |
Keterangan
Jika tidak ada penjadwal (lihat Scheduler) yang terkait dengan konteks panggilan, banyak metode dalam CurrentScheduler
kelas akan menghasilkan lampiran penjadwal default proses. Ini mungkin juga menyiratkan bahwa penjadwal default proses dibuat selama panggilan tersebut.
Hierarki Warisan
CurrentScheduler
Persyaratan
Header: concrt.h
Namespace: konkurensi
Buat
Membuat penjadwal baru yang perilakunya dijelaskan oleh _Policy
parameter dan melampirkannya ke konteks panggilan. Penjadwal yang baru dibuat akan menjadi penjadwal saat ini untuk konteks panggilan.
static void __cdecl Create(const SchedulerPolicy& _Policy);
Parameter
_Kebijakan
Kebijakan penjadwal yang menjelaskan perilaku penjadwal yang baru dibuat.
Keterangan
Lampiran penjadwal ke konteks panggilan secara implisit menempatkan jumlah referensi pada penjadwal.
Setelah penjadwal dibuat dengan Create
metode , Anda harus memanggil metode CurrentScheduler::D etach di beberapa titik di masa mendatang untuk memungkinkan penjadwal dimatikan.
Jika metode ini dipanggil dari konteks yang sudah dilampirkan ke penjadwal yang berbeda, penjadwal yang ada diingat sebagai penjadwal sebelumnya, dan penjadwal yang baru dibuat menjadi penjadwal saat ini. Ketika Anda memanggil metode di CurrentScheduler::Detach
titik selanjutnya, penjadwal sebelumnya dipulihkan sebagai penjadwal saat ini.
Metode ini dapat melemparkan berbagai pengecualian, termasuk scheduler_resource_allocation_error dan invalid_scheduler_policy_value.
CreateScheduleGroup
Membuat grup jadwal baru dalam penjadwal yang terkait dengan konteks panggilan. Versi yang mengambil parameter _Placement
menyebabkan tugas dalam grup jadwal yang baru dibuat menjadi bias untuk dieksekusi di lokasi yang ditentukan oleh parameter tersebut.
static ScheduleGroup* __cdecl CreateScheduleGroup();
static ScheduleGroup* __cdecl CreateScheduleGroup(location& _Placement);
Parameter
_Penempatan
Referensi ke lokasi tempat tugas dalam grup jadwal akan bias untuk dieksekusi.
Tampilkan Nilai
Penunjuk ke grup jadwal yang baru dibuat. Objek ini ScheduleGroup
memiliki jumlah referensi awal yang ditempatkan di atasnya.
Keterangan
Metode ini akan mengakibatkan penjadwal default proses dibuat dan/atau dilampirkan ke konteks panggilan jika saat ini tidak ada penjadwal yang terkait dengan konteks panggilan.
Anda harus memanggil metode Rilis pada grup jadwal ketika Anda selesai menjadwalkan pekerjaan untuk itu. Penjadwal akan menghancurkan grup jadwal ketika semua pekerjaan yang diantrekan ke dalamnya telah selesai.
Perhatikan bahwa jika Anda secara eksplisit membuat penjadwal ini, Anda harus merilis semua referensi untuk menjadwalkan grup di dalamnya, sebelum merilis referensi Anda pada penjadwal, dengan melepaskan konteks saat ini darinya.
Lepaskan
Melepaskan penjadwal saat ini dari konteks panggilan dan memulihkan penjadwal yang terpasang sebelumnya sebagai penjadwal saat ini, jika ada. Setelah metode ini kembali, konteks panggilan kemudian dikelola oleh penjadwal yang sebelumnya dilampirkan ke konteks menggunakan CurrentScheduler::Create
metode atau Scheduler::Attach
.
static void __cdecl Detach();
Keterangan
Metode ini Detach
secara implisit menghapus jumlah referensi dari penjadwal.
Jika tidak ada penjadwal yang dilampirkan ke konteks panggilan, memanggil metode ini akan mengakibatkan pengecualian scheduler_not_attached dilemparkan.
Memanggil metode ini dari konteks yang internal ke dan dikelola oleh penjadwal, atau konteks yang dilampirkan menggunakan metode selain Scheduler::Attach atau CurrentScheduler::Create methods, akan mengakibatkan pengecualian improper_scheduler_detach dilemparkan.
Dapatkan
Mengembalikan penunjuk ke penjadwal yang terkait dengan konteks panggilan, juga disebut sebagai penjadwal saat ini.
static Scheduler* __cdecl Get();
Tampilkan Nilai
Penunjuk ke penjadwal yang terkait dengan konteks panggilan (penjadwal saat ini).
Keterangan
Metode ini akan mengakibatkan penjadwal default proses dibuat dan/atau dilampirkan ke konteks panggilan jika saat ini tidak ada penjadwal yang terkait dengan konteks panggilan. Tidak ada referensi tambahan yang ditempatkan pada objek yang Scheduler
dikembalikan oleh metode ini.
GetNumberOfVirtualProcessors
Mengembalikan jumlah prosesor virtual saat ini untuk penjadwal yang terkait dengan konteks panggilan.
static unsigned int __cdecl GetNumberOfVirtualProcessors();
Tampilkan Nilai
Jika penjadwal dikaitkan dengan konteks panggilan, jumlah prosesor virtual saat ini untuk penjadwal tersebut; jika tidak, nilai -1
.
Keterangan
Metode ini tidak akan menghasilkan lampiran penjadwal jika konteks panggilan belum dikaitkan dengan penjadwal.
Nilai pengembalian dari metode ini adalah pengambilan sampel instan dari jumlah prosesor virtual untuk penjadwal yang terkait dengan konteks panggilan. Nilai ini dapat basi saat dikembalikan.
GetPolicy
Mengembalikan salinan kebijakan yang dibuat oleh penjadwal saat ini.
static SchedulerPolicy __cdecl GetPolicy();
Tampilkan Nilai
Salinan kebijakan yang dibuat oleh penjadwal saat ini.
Keterangan
Metode ini akan mengakibatkan penjadwal default proses dibuat dan/atau dilampirkan ke konteks panggilan jika saat ini tidak ada penjadwal yang terkait dengan konteks panggilan.
Id
Mengembalikan pengidentifikasi unik untuk penjadwal saat ini.
static unsigned int __cdecl Id();
Tampilkan Nilai
Jika penjadwal dikaitkan dengan konteks panggilan, pengidentifikasi unik untuk penjadwal tersebut; jika tidak, nilai -1
.
Keterangan
Metode ini tidak akan menghasilkan lampiran penjadwal jika konteks panggilan belum dikaitkan dengan penjadwal.
IsAvailableLocation
Menentukan apakah lokasi tertentu tersedia pada penjadwal saat ini.
static bool __cdecl IsAvailableLocation(const location& _Placement);
Parameter
_Penempatan
Referensi ke lokasi untuk mengkueri penjadwal saat ini.
Tampilkan Nilai
Indikasi apakah lokasi yang ditentukan oleh _Placement
argumen tersedia pada penjadwal saat ini atau tidak.
Keterangan
Metode ini tidak akan menghasilkan lampiran penjadwal jika konteks panggilan belum dikaitkan dengan penjadwal.
Perhatikan bahwa nilai pengembalian adalah pengambilan sampel seketika dari apakah lokasi yang diberikan tersedia. Di hadapan beberapa penjadwal, manajemen sumber daya dinamis dapat menambahkan atau mengambil sumber daya dari penjadwal kapan saja. Jika ini terjadi, lokasi yang diberikan dapat mengubah ketersediaan.
RegisterShutdownEvent
Menyebabkan handel peristiwa Windows yang diteruskan dalam _ShutdownEvent
parameter diberi sinyal ketika penjadwal yang terkait dengan konteks saat ini dimatikan dan menghancurkan dirinya sendiri. Pada saat acara disinyalir, semua pekerjaan yang telah dijadwalkan ke penjadwal selesai. Beberapa peristiwa matikan dapat didaftarkan melalui metode ini.
static void __cdecl RegisterShutdownEvent(HANDLE _ShutdownEvent);
Parameter
_ShutdownEvent
Handel ke objek peristiwa Windows yang akan diberi sinyal oleh runtime ketika penjadwal yang terkait dengan konteks saat ini dimatikan dan menghancurkan dirinya sendiri.
Keterangan
Jika tidak ada penjadwal yang dilampirkan ke konteks panggilan, memanggil metode ini akan mengakibatkan pengecualian scheduler_not_attached dilemparkan.
ScheduleTask
Menjadwalkan tugas ringan dalam penjadwal yang terkait dengan konteks panggilan. Tugas ringan akan ditempatkan dalam grup jadwal yang ditentukan oleh runtime. Versi yang mengambil parameter _Placement
menyebabkan tugas menjadi bias untuk dieksekusi di lokasi yang ditentukan.
static void __cdecl ScheduleTask(
TaskProc _Proc,
_Inout_opt_ void* _Data);
static void __cdecl ScheduleTask(
TaskProc _Proc,
_Inout_opt_ void* _Data,
location& _Placement);
Parameter
_Proc
Penunjuk ke fungsi untuk dijalankan untuk melakukan isi tugas ringan.
_Data
Penunjuk ke data yang akan diteruskan sebagai parameter ke isi tugas.
_Penempatan
Referensi ke lokasi di mana tugas ringan akan bias terhadap eksekusi.
Keterangan
Metode ini akan mengakibatkan penjadwal default proses dibuat dan/atau dilampirkan ke konteks panggilan jika saat ini tidak ada penjadwal yang terkait dengan konteks panggilan.
Lihat juga
Namespace layanan konkurensi
Kelas Penjadwal
PolicyElementKey
Tugas Microsoft Azure Scheduler