Wenn du die Möglichkeit hast, dann wäre es wohl besser die Events außerhalb der "Hauptsperrung" abzuarbeiten.
statt deinem
Code:
thread-schleife
begin
sperren
schleife
begin
entsperren
event aufrufen
sperren
...
end;
entsperren
kleine pause
end;
nur einmal sperren und danach die Events abarbeiten
Code:
thread-schleife
begin
sperren
schleife
begin
event zu 'ner liste hinzufügen
...
end;
entsperren
alle gespeicherten events aufrufen
kleine pause
end;
oder
Code:
thread-schleife
begin
sperren
daten schnell aus liste auslesen
entsperren
schleife
begin
(mit den ausgelesenen/kopierten daten arbeiten)
event abarbeiten
...
end;
kleine pause
end;