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.

Catatan Fungsi ini tidak dapat diandalkan dan tidak boleh digunakan. Ini ada terutama untuk kompatibilitas mundur. Untuk informasi selengkapnya, lihat Keterangan.
 

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

Lihat juga

CreateEvent

Objek Peristiwa

OpenEvent

ResetEvent

SetEvent

Fungsi Sinkronisasi