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

Namespace layanan konkurensi