Kelas acara
Peristiwa reset manual yang secara eksplisit mengetahui Runtime Konkurensi.
Sintaks
class event;
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
~event Destructor | Menghancurkan suatu peristiwa. |
Metode Publik
Nama | Deskripsi |
---|---|
Reset | Mereset peristiwa ke status tidak diberi sinyal. |
set | Memberi sinyal peristiwa. |
Tunggu | Menunggu peristiwa menjadi sinyal. |
wait_for_multiple | Menunggu beberapa peristiwa menjadi sinyal. |
Konstanta Publik
Nama | Deskripsi |
---|---|
timeout_infinite | Nilai yang menunjukkan bahwa waktu tunggu seharusnya tidak pernah habis. |
Keterangan
Untuk informasi selengkapnya, lihat Struktur Data Sinkronisasi.
Hierarki Warisan
event
Persyaratan
Header: concrt.h
Namespace: konkurensi
event
Membuat peristiwa baru.
_CRTIMP event();
Keterangan
~Acara
Menghancurkan suatu peristiwa.
~event();
Keterangan
Diharapkan tidak ada utas yang menunggu pada peristiwa ketika destruktor berjalan. Memungkinkan peristiwa dihancurkan dengan utas yang masih menunggu di atasnya menghasilkan perilaku yang tidak ditentukan.
mengatur ulang
Mereset peristiwa ke status tidak diberi sinyal.
void reset();
set
Memberi sinyal peristiwa.
void set();
Keterangan
Memberi sinyal peristiwa dapat menyebabkan jumlah konteks arbitrer yang menunggu peristiwa menjadi dapat dijalankan.
timeout_infinite
Nilai yang menunjukkan bahwa waktu tunggu seharusnya tidak pernah habis.
static const unsigned int timeout_infinite = COOPERATIVE_TIMEOUT_INFINITE;
tunggu
Menunggu peristiwa menjadi sinyal.
size_t wait(unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);
Parameter
_Timeout
Menunjukkan jumlah milidetik sebelum waktu tunggu habis. Nilai COOPERATIVE_TIMEOUT_INFINITE
menandakan bahwa tidak ada batas waktu.
Tampilkan Nilai
Jika waktu tunggu terpenuhi, nilai 0
dikembalikan; jika tidak, nilai COOPERATIVE_WAIT_TIMEOUT
untuk menunjukkan bahwa waktu tunggu habis tanpa peristiwa menjadi sinyal.
Penting
Dalam aplikasi Platform Windows Universal (UWP), jangan memanggil wait
utas ASTA karena panggilan ini dapat memblokir utas saat ini dan dapat menyebabkan aplikasi menjadi tidak responsif.
wait_for_multiple
Menunggu beberapa peristiwa menjadi sinyal.
static size_t __cdecl wait_for_multiple(
_In_reads_(count) event** _PPEvents,
size_t count,
bool _FWaitAll,
unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);
Parameter
_PPEvents
Array peristiwa untuk ditunda. Jumlah peristiwa dalam array ditunjukkan oleh count
parameter .
count
Jumlah peristiwa dalam array yang disediakan dalam _PPEvents
parameter .
_FWaitAll
Jika diatur ke nilai true
, parameter menentukan bahwa semua peristiwa dalam array yang disediakan dalam _PPEvents
parameter harus diberi sinyal untuk memenuhi penantian. Jika diatur ke nilai false
, itu menentukan bahwa setiap peristiwa dalam array yang disediakan dalam parameter yang _PPEvents
menjadi sinyal akan memenuhi penantian.
_Timeout
Menunjukkan jumlah milidetik sebelum waktu tunggu habis. Nilai COOPERATIVE_TIMEOUT_INFINITE
menandakan bahwa tidak ada batas waktu.
Tampilkan Nilai
Jika penantian terpenuhi, indeks dalam array yang disediakan dalam _PPEvents
parameter yang memenuhi kondisi tunggu; jika tidak, nilai COOPERATIVE_WAIT_TIMEOUT
untuk menunjukkan bahwa waktu tunggu habis tanpa kondisi terpenuhi.
Keterangan
Jika parameter _FWaitAll
diatur ke nilai true
untuk menunjukkan bahwa semua peristiwa harus menjadi sinyal untuk memenuhi penantian, indeks yang dikembalikan oleh fungsi tidak membawa signifikansi khusus selain fakta bahwa itu bukan nilai COOPERATIVE_WAIT_TIMEOUT
.
Penting
Dalam aplikasi Platform Windows Universal (UWP), jangan memanggil wait_for_multiple
utas ASTA karena panggilan ini dapat memblokir utas saat ini dan dapat menyebabkan aplikasi menjadi tidak responsif.
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk