Hmm... Okay. Wenn das denn nun wirklich so ist
Wie ist dass dann bei dem Lösungsansatz von DeddyH und Bummi:
Delphi-Quellcode:
procedure TMyOwnThread.SyncError;
begin
if Assigned(FInstError)
then FInstError(FError);
end;
procedure TMyOwnThread.Execute;
begin
...
// Error 1
FError := 'Error 1' ;
Queue(SyncError);
...
// Error 2
FError := 'Error 2' ;
Queue(SyncError);
usw.
end;
Wenn Error 1 und Error 2 schnell hintereinander ausgeführt werden und der Hauptthread langsam ist, dann würde FError ja evtl. schon verändert worden sein bevor der Hauptthread FError unter Error 1 ausgelesen hat!?!
Also das typische Problem bei zwei Threads und einer Resource. Also könnte man Critical Sections verwenden. Aber dann wäre man wieder blockieren
Da beißt sich die Schlange wieder selbst in den Schwanz