TCSLog è un oggetto TCriticalSection
Il programma è pieno di cicli try Except.

Il programma

codice:
var
  TSNTPServer: TIdSNTP;
  TDTOraInternet: TDateTime;
begin
  SincLog(NomeFile, 'SorgenteDataOra()'); // Riga 1
  if Base.SincroniaSNTP then begin // era false
  end else begin
    TDTOraInternet:= Now;
    DateTime:= IncMinute(TDTOraInternet, TimeDelay); // TimeDelay era 0
    SincLog(NomeFile, 'Uso DateTime dal Server locale -> '+ DateTimeToStr(TDTOraInternet, MySettings)+ '. Incremento di minuti: '+ IntToStr(TimeDelay)+ ', ottengo: -> '+ DateTimeToStr(DateTime, MySettings)); // Riga 2
    ...
  end;
ha impiegato 20 minuti per andare dalla riga 1 alla riga 2, se pur eseguendo perfettamente il codice. La procedura che contiene la CriticalSection si chiama SincLog();

Non so cosa fare, il programma comunque cammina per mesi è che a volte si comporta così.