Fungsi DeleteTimerQueueTimer (threadpoollegacyapiset.h)
Menghapus timer dari antrean timer dan secara opsional menunggu fungsi panggilan balik timer yang sedang berjalan selesai sebelum menghapus timer.
Sintaks
BOOL DeleteTimerQueueTimer(
[in, optional] HANDLE TimerQueue,
[in] HANDLE Timer,
[in, optional] HANDLE CompletionEvent
);
Parameter
[in, optional] TimerQueue
Handel ke antrean timer. Handel ini dikembalikan oleh fungsi CreateTimerQueue .
Jika timer dibuat menggunakan antrean timer default, parameter ini harus NULL.
[in] Timer
Handel ke timer-queue timer. Handel ini dikembalikan oleh fungsi CreateTimerQueueTimer .
[in, optional] CompletionEvent
Handel ke objek peristiwa yang akan disinyalkan ketika sistem telah membatalkan timer dan semua fungsi panggilan balik telah selesai. Parameter ini bisa NULL.
Jika parameter ini INVALID_HANDLE_VALUE, fungsi menunggu fungsi panggilan balik timer yang sedang berjalan selesai sebelum kembali.
Jika parameter ini NULL, fungsi menandai timer untuk dihapus dan segera kembali. Jika timer telah kedaluwarsa, fungsi panggilan balik timer akan berjalan hingga selesai. Namun, tidak ada pemberitahuan yang dikirim ketika fungsi panggilan balik timer telah selesai. Sebagian besar penelepon tidak boleh menggunakan opsi ini, dan harus menunggu menjalankan fungsi panggilan balik timer selesai sehingga mereka dapat melakukan pembersihan yang diperlukan.
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. Jika kode kesalahan ERROR_IO_PENDING, tidak perlu memanggil fungsi ini lagi. Untuk kesalahan lainnya, Anda harus mencoba kembali panggilan.
Keterangan
Fungsi ini tidak dapat dipanggil saat utas menggunakan peniruan identitas. Perilaku yang dihasilkan tidak ditentukan.
Anda dapat mengatur CompletionEvent ke INVALID_HANDLE_VALUE saat memanggil fungsi ini dari dalam timer callback timer lain selama fungsi panggilan balik tidak dijalankan di utas timer. Namun, kebuntuan dapat terjadi jika dua fungsi panggilan balik mencoba memblokir panggilan DeleteTimerQueueTimer pada timer masing-masing orang. Selain itu, Anda tidak dapat melakukan panggilan penghapusan pemblokiran pada timer yang terkait dengan panggilan balik.
Berhati-hatilah saat melakukan pemblokiran panggilan DeleteTimerQueueTimer pada utas persisten. Jika timer yang dihapus dibuat dengan WT_EXECUTEINPERSISTENTTHREAD, kebuntuan dapat terjadi.
Jika ada fungsi panggilan balik yang luar biasa dan CompletionEventADALAH NULL, fungsi akan gagal dan mengatur kode kesalahan ke ERROR_IO_PENDING. Ini menunjukkan bahwa ada fungsi panggilan balik yang luar biasa. Panggilan balik tersebut akan dijalankan atau sedang dieksekusi. Timer dibersihkan ketika fungsi panggilan balik selesai dijalankan.
Untuk membatalkan semua timer dalam antrean timer, panggil fungsi DeleteTimerQueueEx .
Untuk mengkompilasi aplikasi yang menggunakan fungsi ini, tentukan _WIN32_WINNT sebagai 0x0500 atau yang lebih baru. Untuk informasi selengkapnya, lihat Menggunakan Header Windows.
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 | threadpoollegacyapiset.h |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |
Lihat 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