Nachdem LeaveCriticalSection ausgeführt wurde, habe ich keinen sofortigen (Lese-)Zugriff auf z.B. eine Variable, die innerhalb einer CriticalSection verändert wurde.
Das solltest du mal genauer beschreiben. Außerhalb der CS solltest du nicht auf Daten zugreifen, die mit der CS geschützt sind. Da ist irgendetwas faul.
Das
Sleep hilft, könnte aus der Hüfte geschossen an Timing-Effekten oder an eventuellen Speicherbarrieren beim Suspendieren des Threads liegen.
Mich würde ein minimales Beispiel interessieren, wo es ohne
Sleep schief geht.