Fungsi PulseEvent (winbase.h)
Mengatur objek peristiwa yang ditentukan ke status tersinyal lalu mengatur ulang ke status tidak ditandatangani setelah merilis jumlah utas tunggu yang sesuai.
Sintaks
BOOL PulseEvent(
[in] HANDLE hEvent
);
Parameter
[in] hEvent
Handel ke objek peristiwa. Fungsi CreateEvent atau OpenEvent mengembalikan handel ini.
Handel harus memiliki hak akses EVENT_MODIFY_STATE. Untuk informasi selengkapnya, lihat Keamanan Objek Sinkronisasi dan Hak Akses.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Utas yang menunggu objek sinkronisasi dapat dihapus sesaat dari status tunggu oleh APC mode kernel, lalu dikembalikan ke status tunggu setelah APC selesai. Jika panggilan ke PulseEvent terjadi selama waktu ketika utas telah dihapus dari status tunggu, utas tidak akan dirilis karena PulseEvent hanya merilis utas yang menunggu saat dipanggil. Oleh karena itu, PulseEvent tidak dapat diandalkan dan tidak boleh digunakan oleh aplikasi baru. Sebagai gantinya, gunakan variabel kondisi.
Untuk objek peristiwa reset manual, semua utas tunggu yang dapat segera dirilis dirilis. Fungsi kemudian mengatur ulang status objek peristiwa menjadi tidak ditandatangani dan dikembalikan.
Untuk objek peristiwa reset otomatis, fungsi mengatur ulang status ke nonsignaled dan kembali setelah merilis satu utas tunggu, bahkan jika beberapa utas menunggu.
Jika tidak ada utas yang menunggu, atau jika tidak ada utas yang dapat segera dirilis, PulseEvent hanya mengatur status objek peristiwa ke nonsignaled dan kembali.
Perhatikan bahwa untuk utas yang menggunakan fungsi tunggu beberapa objek untuk menunggu semua objek yang ditentukan disinyalir, PulseEvent dapat mengatur status objek peristiwa untuk memberi sinyal dan mengatur ulang ke nonsignaled tanpa menyebabkan fungsi tunggu kembali. Ini terjadi jika tidak semua objek yang ditentukan secara bersamaan disinyalir.
Berhati-hatilah saat menggunakan SignalObjectAndWait dan PulseEvent dengan Windows 7, karena menggunakan API ini di antara beberapa utas dapat menyebabkan aplikasi mengalami kebuntuan. Utas yang disinyalir oleh SignalObjectAndWait memanggil PulseEvent untuk memberi sinyal objek tunggu panggilan SignalObjectAndWait . Dalam beberapa keadaan, pemanggil SignalObjectAndWait tidak dapat menerima status sinyal objek tunggu tepat waktu, menyebabkan kebuntuan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winbase.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |