Zitat von
smudo:
Hallo Union,
vielen Dank schon wieder mal.
Deine Suchbegriffe konnte ich zwar nicht finden,
mir fiel dabei aber das Zauberwort Synchronize ein.
Einfach die DoWait-Methode mit Synchronize aufgerufen und schon kommt kein Fehler mehr.
Trotzdem weiß ich noch nicht, was vorher passierte. Hat sich der Thread selbst überholt?
Ganz Einfach, Thread 1 hat gerade WriteLog durchgeführt und will gerade Delete ausführen. Genau in der Millisekunde prüft Thread 2 mit Count > 0 und kommt noch in die Schleife, übergibt die Adresse von PLogBuffer an WriteLog... und in diesem Augenblick wird Delete ausgeführt. Dann zeigt die eben noch gültige Adresse ins Nirvana.
P.S. Die angegebenen Funktionen sind
WINAPI-Funktionen.