Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se suspende en la variable de condición especificada y libera el bloqueo especificado como una operación atómica.
Syntax
BOOL SleepConditionVariableSRW(
[in, out] PCONDITION_VARIABLE ConditionVariable,
[in, out] PSRWLOCK SRWLock,
[in] DWORD dwMilliseconds,
[in] ULONG Flags
);
Parámetros
[in, out] ConditionVariable
Puntero a la variable de condición. Esta variable debe inicializarse llamando a InitializeConditionVariable (para inicializar la estructura dinámicamente) o asignar la constante CONDITION_VARIABLE_INIT a la variable de estructura (para inicializar la estructura estáticamente).
[in, out] SRWLock
Puntero al bloqueo. Este bloqueo debe mantenerse de la manera especificada por el parámetro Flags .
[in] dwMilliseconds
Intervalo de tiempo de espera, en milisegundos. La función devuelve si transcurre el intervalo. Si dwMilliseconds es cero, la función prueba los estados de los objetos especificados y devuelve inmediatamente. Si dwMilliseconds es INFINITE, el intervalo de tiempo de espera de la función nunca transcurre.
[in] Flags
Si este parámetro es CONDITION_VARIABLE_LOCKMODE_SHARED, el bloqueo SRW está en modo compartido. De lo contrario, el bloqueo está en modo exclusivo.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es distinto de cero.
Si se produce un error en la función, el valor devuelto es 0. Para obtener información de error extendida, llame a GetLastError.
Si el tiempo de espera expira la función devuelve FALSE y GetLastError devuelve ERROR_TIMEOUT.
Observaciones
Si el bloqueo se desbloquea cuando se llama a esta función, el comportamiento de la función no está definido.
El subproceso se puede reactivar mediante la función WakeConditionVariable o WakeAllConditionVariable . Una vez despertado el subproceso, vuelve a adquirir el bloqueo que liberó cuando el subproceso entró en estado de suspensión.
Las variables de condición están sujetas a reactivaciones falsas (las que no están asociadas a una reactivación explícita) y las reactivaciones robadas (otro subproceso administra la ejecución antes del subproceso despertado). Por lo tanto, debe volver a comprobar un predicado (normalmente en un while bucle) después de que se devuelva una operación de suspensión.
Requisitos
| Requirement | Importancia |
|---|---|
| Cliente mínimo compatible | Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP] |
| Servidor mínimo admitido | Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP] |
| de la plataforma de destino de |
Windows |
| Header | synchapi.h (incluya Windows.h en Windows 7, Windows Server 2008 Windows Server 2008 R2) |
| Library | Kernel32.lib |
| DLL de |
Kernel32.dll |
Consulte también
Bloqueos delgados lector/escritor (SRW)