Objek Peristiwa (Sinkronisasi)

Objek peristiwa adalah objek sinkronisasi yang statusnya dapat diatur secara eksplisit ke sinyal dengan menggunakan fungsi SetEvent. Berikut ini adalah dua jenis objek peristiwa.

Objek Deskripsi
Peristiwa reset manual Objek peristiwa yang statusnya tetap diberi sinyal sampai secara eksplisit diatur ulang ke nonsignaled oleh fungsi ResetEvent . Saat disinyalir, sejumlah utas tunggu, atau utas yang kemudian menentukan objek peristiwa yang sama di salah satu fungsi tunggu, dapat dilepaskan.
Peristiwa reset otomatis Objek peristiwa yang statusnya tetap diberi sinyal hingga satu utas tunggu dirilis, pada saat itu sistem secara otomatis mengatur status ke nonsignaled. Jika tidak ada utas yang menunggu, status objek peristiwa tetap diberi sinyal. Jika lebih dari satu utas menunggu, utas tunggu dipilih. Jangan asumsikan urutan first-in, first-out (FIFO). Peristiwa eksternal seperti APC mode kernel dapat mengubah urutan tunggu.

 

Objek peristiwa berguna dalam mengirim sinyal ke utas yang menunjukkan bahwa peristiwa tertentu telah terjadi. Misalnya, dalam input dan output yang tumpang tindih, sistem menetapkan objek peristiwa tertentu ke status yang diberi sinyal ketika operasi yang tumpang tindih telah selesai. Satu utas dapat menentukan objek peristiwa yang berbeda dalam beberapa operasi yang tumpang tindih secara bersamaan, lalu menggunakan salah satu fungsi tunggu beberapa objek untuk menunggu status salah satu objek peristiwa diberi sinyal.

Utas menggunakan fungsi CreateEvent atau CreateEventEx untuk membuat objek peristiwa. Alur pembuatan menentukan status awal objek dan apakah itu objek peristiwa reset manual atau reset otomatis. Utas pembuatan juga dapat menentukan nama untuk objek peristiwa. Utas dalam proses lain dapat membuka handel ke objek peristiwa yang ada dengan menentukan namanya dalam panggilan ke fungsi OpenEvent . Untuk informasi tambahan tentang nama untuk objek mutex, peristiwa, semaphore, dan timer, lihat Sinkronisasi Interproses.

Menggunakan Objek Peristiwa