Kelas CurrentScheduler

Mewakili sebuah abstraksi untuk penjadwal saat ini yang dihubungkan dengan konteks pemanggilan.

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 pengatur jadwal saat ini dari konteks pemanggilan dan memulihkan pengatur jadwal yang terpasang sebelumnya untuk menjadi pengatur jadwal saat ini, jika ada. Setelah metode ini selesai dijalankan, konteks panggilan selanjutnya dikelola oleh penjadwal yang telah sebelumnya dilampirkan ke konteks tersebut menggunakan metode CurrentScheduler::Create atau Scheduler::Attach.
Dapatkan Mengembalikan pointer ke penjadwal yang terkait dengan konteks panggilan, juga disebut sebagai penjadwal yang sedang aktif.
GetNumberOfVirtualProcessors (DapatkanJumlahProsesorVirtual) Mengembalikan jumlah prosesor virtual saat ini untuk penjadwal yang terkait dengan konteks panggilan.
GetPolicy Mengembalikan salinan kebijakan yang digunakan saat penjadwal saat ini dibuat.
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 diisyaratkan, semua pekerjaan yang telah dijadwalkan oleh penjadwal telah selesai. Beberapa peristiwa matikan dapat didaftarkan melalui metode ini.
ScheduleTask Kelebihan beban. Menjadwalkan tugas ringan dalam penjadwal yang terkait dengan konteks panggilan. Tugas yang ringan akan ditempatkan dalam grup jadwal yang ditentukan oleh waktu jalan. 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 Pewarisan

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 saja dibuat.

Keterangan

Pengaitan penjadwal dengan konteks panggilan secara implisit mengatur penghitung referensi pada penjadwal.

Setelah penjadwal dibuat dengan Create metode, Anda harus memanggil metode CurrentScheduler::Detach 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 CurrentScheduler::Detach pada waktu nanti, penjadwal sebelumnya dipulihkan menjadi penjadwal saat ini.

Metode ini dapat melemparkan berbagai pengecualian, termasuk scheduler_resource_allocation_error dan invalid_scheduler_policy_value.

BuatGrupJadwal

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 menghapus kelompok jadwal ketika semua pekerjaan yang diantrekan ke dalamnya telah selesai.

Perhatikan bahwa jika Anda secara eksplisit membuat penjadwal ini, Anda harus melepaskan semua referensi ke kelompok jadwal di dalamnya sebelum melepaskan referensi Anda pada penjadwal tersebut, dengan melepaskan konteks saat ini dari penjadwal tersebut.

Lepaskan

Melepaskan pengatur jadwal saat ini dari konteks pemanggilan dan memulihkan pengatur jadwal yang terpasang sebelumnya untuk menjadi pengatur jadwal saat ini, jika ada. Setelah metode ini selesai dijalankan, konteks panggilan selanjutnya dikelola oleh penjadwal yang telah sebelumnya dilampirkan ke konteks tersebut menggunakan metode CurrentScheduler::Create atau Scheduler::Attach.

static void __cdecl Detach();

Keterangan

Metode Detach secara implisit menghapus penghitungan 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 bersifat internal dan dikelola oleh penjadwal, atau konteks yang terlampir menggunakan metode selain Scheduler::Attach atau CurrentScheduler::Create metode, akan mengakibatkan pengecualian improper_scheduler_detach dilemparkan.

Dapatkan

Mengembalikan pointer ke penjadwal yang terkait dengan konteks panggilan, juga disebut sebagai penjadwal yang sedang aktif.

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 Scheduler yang dikembalikan oleh metode ini.

JumlahProsesorVirtual

Mengembalikan jumlah prosesor virtual saat ini untuk penjadwal yang terkait dengan konteks panggilan.

static unsigned int __cdecl GetNumberOfVirtualProcessors();

Tampilkan Nilai

Jika sebuah scheduler dikaitkan dengan konteks panggilan, maka jumlah prosesor virtual saat ini untuk scheduler 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 digunakan saat penjadwal saat ini dibuat.

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.

LokasiTersedia

Menentukan apakah lokasi tertentu tersedia pada penjadwal saat ini.

static bool __cdecl IsAvailableLocation(const location& _Placement);

Parameter

_Penempatan
Referensi ke lokasi untuk mengajukan kueri kepada 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 balik adalah pengambilan sampel instan mengenai ketersediaan lokasi yang diberikan. 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 diisyaratkan, semua pekerjaan yang telah dijadwalkan oleh penjadwal telah selesai. Beberapa peristiwa matikan dapat didaftarkan melalui metode ini.

static void __cdecl RegisterShutdownEvent(HANDLE _ShutdownEvent);

Parameter

_ShutdownEvent
Pegangan ke objek peristiwa Windows yang akan diberi sinyal oleh runtime pada saat penjadwal yang terkait dengan konteks saat ini dimatikan dan dihancurkan.

Keterangan

Jika tidak ada penjadwal yang dilampirkan ke konteks panggilan, memanggil metode ini akan mengakibatkan pengecualian scheduler_not_attached dilemparkan.

JadwalTugas

Menjadwalkan tugas ringan dalam penjadwal yang terkait dengan konteks panggilan. Tugas yang ringan akan ditempatkan dalam grup jadwal yang ditentukan oleh waktu jalan. 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 yang akan dijalankan untuk melaksanakan isi tugas ringan.

_Data
Sebuah penunjuk kosong ke data yang akan diteruskan sebagai parameter ke badan dari tugas.

_Penempatan
Referensi ke lokasi di mana tugas ringan akan cenderung lebih sering dieksekusi.

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
Penjadwal Tugas