Nehmen wir mal einen typischen Beispieldurchlauf:
1. (Thread) Liste wird gesperrt.
2. (
VCL) Liste soll abgerufen werden, ist aber noch gesperrt -> es wird gewartet, bis die Liste wieder frei ist.
3. (Thread) Synchronisiert Event-Aufruf mit
VCL-Thread.
4. Der
VCL-Thread kann den Aufruf aber noch gar nicht synchronisieren, weil noch auf das Unlocken der Liste gewartet wird.
Und da ham wir den Deadlock. Beide Threads warten.
Edit: Oder hab ich da irgendwas falsch verstanden?