Kelas task_completion_event
Kelas task_completion_event
memungkinkan Anda menunda eksekusi tugas hingga kondisi terpenuhi, atau memulai tugas sebagai respons terhadap peristiwa eksternal.
Sintaks
template<typename _ResultType>
class task_completion_event;
template<>
class task_completion_event<void>;
Parameter
_ResultType
Jenis hasil kelas ini task_completion_event
.
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
task_completion_event | Membuat task_completion_event objek. |
Metode Publik
Nama | Deskripsi |
---|---|
set | Kelebihan beban. Mengatur peristiwa penyelesaian tugas. |
set_exception | Kelebihan beban. Menyebarkan pengecualian untuk semua tugas yang terkait dengan kejadian ini. |
Keterangan
Gunakan tugas yang dibuat dari peristiwa penyelesaian tugas ketika skenario Anda mengharuskan Anda membuat tugas yang akan selesai, dan dengan demikian kelanjutannya dijadwalkan untuk eksekusi, pada beberapa titik di masa mendatang. task_completion_event
harus memiliki jenis yang sama dengan tugas yang Anda buat, dan memanggil metode yang ditetapkan pada peristiwa penyelesaian tugas dengan nilai jenis tersebut akan menyebabkan tugas terkait selesai, dan memberikan nilai tersebut sebagai hasil dari kelanjutannya.
Jika peristiwa penyelesaian tugas tidak pernah diberi sinyal, tugas apa pun yang dibuat darinya akan dibatalkan saat dihancurkan.
task_completion_event
berperilaku seperti penunjuk cerdas, dan harus diteruskan oleh nilai.
Hierarki Warisan
task_completion_event
Persyaratan
Header: ppltasks.h
Namespace: konkurensi
set
Mengatur peristiwa penyelesaian tugas.
bool set(_ResultType _Result) const ;
bool set() const ;
Parameter
_Hasil
Hasil untuk mengatur kejadian ini.
Tampilkan Nilai
Metode mengembalikan true
jika berhasil mengatur peristiwa. Ini mengembalikan false
jika peristiwa sudah diatur.
Keterangan
Dengan adanya beberapa panggilan bersamaan ke set
, hanya panggilan pertama yang akan berhasil dan hasilnya (jika ada) akan disimpan dalam peristiwa penyelesaian tugas. Set yang tersisa diabaikan dan metode akan mengembalikan false. Saat Anda mengatur peristiwa penyelesaian tugas, semua tugas yang dibuat dari peristiwa tersebut akan segera selesai, dan kelanjutannya, jika ada, akan dijadwalkan. Objek penyelesaian tugas yang memiliki _ResultType
selain void
akan meneruskan nilai kelanjutannya.
set_exception
Menyebarkan pengecualian untuk semua tugas yang terkait dengan kejadian ini.
template<typename _E>
__declspec(noinline) bool set_exception(_E _Except) const;
__declspec(noinline) bool set_exception(std::exception_ptr _ExceptionPtr) const ;
Parameter
_E
Jenis pengecualian.
_Kecuali
Pengecualian yang akan diatur.
_ExceptionPtr
Penunjuk pengecualian yang akan diatur.
Tampilkan Nilai
task_completion_event
Membuat task_completion_event
objek.
task_completion_event();
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