System.SyncObjs.TConditionVariableHelper.SleepCS
Delphi
function SleepCS(var CriticalSection: TRTLCriticalSection; dwMilliseconds: DWORD): Boolean;
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
function | public | System.SyncObjs.pas | System.SyncObjs | TConditionVariableHelper |
Beschreibung
Wartet auf die Bedingungsvariable und gibt den kritischen Abschnitt frei.
SleepCS wartet auf die Bedingungsvariable und gibt den kritischen Abschnitt frei, der im Parameter CriticalSection angegeben ist.
Der Parameter dwMilliseconds legt das Zeitüberschreitungsintervall fest. Wenn dieses Intervall abgelaufen ist, wird der kritische Abschnitt erneut belegt, auch wenn die Bedingungsvariable nicht von anderen Threads aktiviert worden ist.
Bedingungsvariablen können plötzlich aktiviert werden, ohne dass ein expliziter Aufruf der Methoden Wake oder WakeAll erfolgt ist. Es ist auch möglich, dass andere Threads ausgeführt werden, bevor der Thread aktiviert wird, der auf die Bedingungsvariable wartet. Rufen Sie deshalb SleepCS in einer Schleife auf. Um die oben genannten Fehler zu vermeiden, sollte die Schleife testen, ob die gewünschte Bedingung auch erfüllt wird, nachdem die Bedingungsvariable aktiviert wurde.