Zwar wimmelt es in der Thread-Methode je nach Fall von CS.Enter; try ... finally CS.Leave; end;
, ...
Und das sollte -der Lesbarkeit wegen- in kleine lokale Prozeduren oder private Methoden ausrefaktorisiert werden, dann wimmelt es nicht mehr so und... das Ganze gewinnt einen Preis für sauberen Code