Also folgender Fall.
Die Funktion tritt mit Enter ein
und dann wird Application Processmessages aufgerufen..
Jetzt kommt asynchron eine erneuter Funktionsaufruf (bspw. über einen Button)
Der versucht jetzt auch über Enter einzusteigen (und ruf WaitforSing... auf)
Delphi-Quellcode:
Procedure TThreadCriticalSection.Enter;
Begin
WaitForSingleObject(fSemaphore, INFINITE)
End;
So nun scheint es so als hätten wir einen Deadlock, da der erste Funktionsaufruf es nicht schaft ein Leave aufzurufen, da
der Thread still steht und darauf wartet...
Vielleicht sehe ich es ja auch falsch..
Danke!