Fungsi SleepConditionVariableSRW (synchapi.h)
Tidur pada variabel kondisi yang ditentukan dan melepaskan kunci yang ditentukan sebagai operasi atomik.
Sintaks
BOOL SleepConditionVariableSRW(
[in, out] PCONDITION_VARIABLE ConditionVariable,
[in, out] PSRWLOCK SRWLock,
[in] DWORD dwMilliseconds,
[in] ULONG Flags
);
Parameter
[in, out] ConditionVariable
Penunjuk ke variabel kondisi. Variabel ini harus diinisialisasi menggunakan fungsi InitializeConditionVariable .
[in, out] SRWLock
Penunjuk ke kunci. Kunci ini harus ditahan dengan cara yang ditentukan oleh parameter Bendera .
[in] dwMilliseconds
Interval waktu habis, dalam milidetik. Fungsi mengembalikan jika interval berlalu. Jika dwMilliseconds adalah nol, fungsi menguji status objek yang ditentukan dan segera kembali. Jika dwMilliseconds adalah INFINITE, interval waktu habis fungsi tidak pernah berlalu.
[in] Flags
Jika parameter ini CONDITION_VARIABLE_LOCKMODE_SHARED, kunci SRW berada dalam mode bersama. Jika tidak, kunci dalam mode eksklusif.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah 0
. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Jika batas waktu kedaluwarsa, fungsi akan kembali FALSE
dan GetLastError mengembalikan ERROR_TIMEOUT.
Keterangan
Jika kunci tidak terkunci ketika fungsi ini dipanggil, perilaku fungsi tidak ditentukan.
Utas dapat dibangunkan menggunakan fungsi WakeConditionVariable atau WakeAllConditionVariable . Setelah utas terbangun, ia memperoleh kembali kunci yang dilepaskannya ketika utas memasuki status tidur.
Variabel kondisi tunduk pada bangun yang melelahkan (yang tidak terkait dengan bangun eksplisit) dan wakeup yang dicuri (utas lain berhasil berjalan sebelum utas woken). Oleh karena itu, Anda harus mencentang ulang predikat (biasanya dalam perulangan while
) setelah operasi tidur kembali.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2008 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | synchapi.h (termasuk Windows.h pada Windows 7, Windows Server 2008 Windows Server 2008 R2) |
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