KlassenKlassenKlassenKlassen | | | | Operatoren

wait_conditionwait_conditionWaitConditionwait_conditionWaitConditionWaitCondition (Operator)

Name

wait_conditionwait_conditionWaitConditionwait_conditionWaitConditionWaitCondition — Warten auf das Signal eines Condition-Synchronisationsobjektes.

Signatur

wait_condition( : : ConditionHandle, MutexHandle : )

Herror wait_condition(const Hlong ConditionHandle, const Hlong MutexHandle)

Herror T_wait_condition(const Htuple ConditionHandle, const Htuple MutexHandle)

Herror wait_condition(const HTuple& ConditionHandle, const HTuple& MutexHandle)

void HCondition::WaitCondition(const HMutex& MutexHandle) const

void WaitCondition(const HTuple& ConditionHandle, const HTuple& MutexHandle)

void HCondition::WaitCondition(const HMutex& MutexHandle) const

void HOperatorSetX.WaitCondition(
[in] VARIANT ConditionHandle, [in] VARIANT MutexHandle)

void HConditionX.WaitCondition([in] IHMutexX* MutexHandle)

static void HOperatorSet.WaitCondition(HTuple conditionHandle, HTuple mutexHandle)

void HCondition.WaitCondition(HMutex mutexHandle)

Beschreibung

wait_conditionwait_conditionWaitConditionwait_conditionWaitConditionWaitCondition gibt den Mutex, gegeben durch MutexHandleMutexHandleMutexHandleMutexHandleMutexHandlemutexHandle, frei (vergleiche unlock_mutexunlock_mutexUnlockMutexunlock_mutexUnlockMutexUnlockMutex) und wartet bis die Condition-Variable ConditionHandleConditionHandleConditionHandleConditionHandleConditionHandleconditionHandle signalisiert wird. Freigeben und Warten geschehen atomar. Die Threadausführung wird unterbrochen und verursacht keine Prozessorlast, bis die Condition signalisiert wird. Der Mutex muss bei der Übergabe zu wait_conditionwait_conditionWaitConditionwait_conditionWaitConditionWaitCondition vom aufrufenden Thread gesperrt sein. Bevor der Operator wieder zum aufrufenden Thread zurückkehrt, wird der Mutex wieder gesperrt (vergleiche lock_mutexlock_mutexLockMutexlock_mutexLockMutexLockMutex).

Wenn der Programmierer dafür sorgt, dass alle Threads stets den Mutex sperren bevor sie die Condition signalisieren, dann ist sichergestellt, dass eine Condition nicht zwischen dem Zeitpunkt des Sperren eines Mutexes und dem Warten auf eine Condition signalisiert (und somit ignoriert) werden kann.

Parallelisierung

Parameter

ConditionHandleConditionHandleConditionHandleConditionHandleConditionHandleconditionHandle (input_control)  condition HCondition, HTupleHTupleHCondition, HTupleHConditionX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Condition-Synchronisationsobjekt.

MutexHandleMutexHandleMutexHandleMutexHandleMutexHandlemutexHandle (input_control)  mutex HMutex, HTupleHTupleHMutex, HTupleHMutexX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Mutex-Synchronisationsobjekt.

Ergebnis

Ist der Parameterwert korrekt, dann liefert wait_conditionwait_conditionWaitConditionwait_conditionWaitConditionWaitCondition den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Nachfolger

signal_conditionsignal_conditionSignalConditionsignal_conditionSignalConditionSignalCondition, clear_conditionclear_conditionClearConditionclear_conditionClearConditionClearCondition

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren