Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tidur pada variabel kondisi yang ditentukan dan merilis bagian penting yang ditentukan sebagai operasi atom.
Syntax
BOOL SleepConditionVariableCS(
[in, out] PCONDITION_VARIABLE ConditionVariable,
[in, out] PCRITICAL_SECTION CriticalSection,
[in] DWORD dwMilliseconds
);
Parameter-parameternya
[in, out] ConditionVariable
Penunjuk ke variabel kondisi. Variabel ini harus diinisialisasi dengan memanggil InitializeConditionVariable (untuk menginisialisasi struktur secara dinamis) atau menetapkan konstanta CONDITION_VARIABLE_INIT ke variabel struktur (untuk menginisialisasi struktur secara statis).
[in, out] CriticalSection
Penunjuk ke objek bagian penting. Bagian penting ini harus dimasukkan tepat sekali oleh pemanggil pada saat SleepConditionVariableCS dipanggil.
[in] dwMilliseconds
Interval waktu habis, dalam milidetik. Jika interval waktu habis berlalu, fungsi memperoleh kembali bagian penting dan mengembalikan nol. Jika dwMilliseconds adalah nol, fungsi menguji status objek yang ditentukan dan segera kembali. Jika dwMilliseconds adalah INFINITE, interval waktu habis fungsi tidak pernah berlalu. Untuk informasi selengkapnya, lihat Keterangan.
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal atau interval waktu habis berlalu, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError. Kemungkinan kode kesalahan termasuk ERROR_TIMEOUT, yang menunjukkan bahwa interval waktu habis telah berlalu sebelum utas lain mencoba membangunkan utas tidur.
Komentar
Utas yang tidur pada variabel kondisi dapat dibangunkan sebelum interval waktu habis yang ditentukan telah berlalu menggunakan fungsi WakeConditionVariable atau WakeAllConditionVariable . Dalam hal ini, utas bangun ketika pemrosesan bangun selesai, dan bukan ketika interval waktu habisnya berlalu. Setelah utas dibangunkan, ia memperoleh kembali bagian kritis yang dirilisnya ketika utas memasuki status tidur.
Variabel kondisi tunduk pada bangun yang memacu (yang tidak terkait dengan bangun eksplisit) dan bangun yang dicuri (utas lain berhasil dijalankan sebelum utas woken). Oleh karena itu, Anda harus mencentang ulang predikat (biasanya dalam perulangan while ) setelah operasi tidur kembali.
Examples
Untuk contoh yang menggunakan fungsi ini, lihat Menggunakan Variabel Kondisi.
Persyaratan
| Persyaratan | Nilai |
|---|---|
| Klien minimum yang didukung | Windows Vista [aplikasi desktop | Aplikasi UWP] |
| Server minimum yang didukung | Windows Server 2008 [aplikasi desktop | Aplikasi UWP] |
| Platform Target | Windows |
| Header | synchapi.h (termasuk Windows.h pada Windows 7, Windows Server 2008 Windows Server 2008 R2) |
| Library | Kernel32.lib |
| DLL | Kernel32.dll |
Lihat juga
Fungsi Sinkronisasi