Sleep und CCriticalSection
-
Hallo,
ich benutze in einer CCriticalSection folgende Funktion:
VOID Sleep(
DWORD dwMilliseconds
);.Leider machen die Threads nicht das, was sie sollen.
Wie wirkt sich eine Aufruf von Sleep() in einer CCriticalSection auf, wenn der Thread den Lock hat. Wird diese dann freigegeben, oder behält der Thread den Lock?
Konnte keine Infos dazu finden. Vielleicht hat ja jemand Erfahrung damit.Vielen Dank
-
Eine CriticalSection wird komplett von Dir verwaltet! Wenn Du deshlab ein
EnterCriticalSection Sleep(1000); LeaveCriticalSection
machst, dann wird die CS nicht freigebenen! D.h. alle anderen Threads, die auch noch auf diese CS warten, bleiben auch so lange stehen...
Als Regel gilt: Mach die aktionen in einer CS so kurz wie möglich!
-
Ok, danke für die schnelle Antwort. Dann muss der Fehler wo anders liegen.
Werde mal weitersuchen.Servus