Una classe instanzia un certo numero di thread. Questa classe, qualora si verifichi una tale situazione genera un evento all'interno di ogni thread. I thread quindi correttamente eseguono alcune cose.
Il mio problema è che fintantoché tutti i thread non hanno finito di eseguire la procedura invocata dall'evento, la classe principale non restituisce il controllo all'utente.
Io invece ho la necessità che generato l'evento ogni thread possa eseguire le proprie operazioni senza che l'utente debba attenderne il completamento.
E' possibile? Posto del codice:

Classe base, procedura che genera gli eventi all'interno di ogni thread:
codice:
  for I := ListaThread.Count - 1 downto 0 do begin
    if Assigned(TThTerminaleServer(ListaThread[I])) then begin
      TThTerminaleServer(ListaThread[I]).AggionaBacheca(self);
    end;
  end;
Thread:
codice:
type
  TNotifyEvent= procedure(Sender: TObject) of object;
...
      EAggionamentoBacheca: TNotifyEvent;
    published
      property OnAggionamentoBacheca: TNotifyEvent read EAggionamentoBacheca write EAggionamentoBacheca;
...
constructor
  EAggionamentoBacheca:= AggionamentoBacheca;
...
procedure TThTerminaleServer.AggionamentoBacheca(Sender: TObject);
begin
  ...
end;
Fintantoché la lista "ListaThread" viene percorsa completamente l'utente deve aspettare.
Come posso fare?
Ho commesso qualche errore?