Originariamente inviato da denis76
Questa classe, qualora si verifichi una tale situazione genera un evento all'interno di ogni thread.
Cosa significa esattamente "genera un evento all'interno di ogni thread"?
Il metodo assegnato per l'evento viene eseguito nel contesto della classe, nel contesto del thread o nel thread primario dell'applicazione?

Originariamente inviato da denis76
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?
Se l'esecuzione del metodo che risponde all'evento viene delegato ad un thread, esso verrà eseguito dal thread.

Originariamente inviato da denis76
codice:
  for I := ListaThread.Count - 1 downto 0 do begin
    if Assigned(TThTerminaleServer(ListaThread[I])) then begin
      TThTerminaleServer(ListaThread[I]).AggionaBacheca(self);
    end;
  end;
Se la classe che gestisce i thread esegue questo codice, significa che il ciclo avviene in modo sincrono all'applicazione; se avviene in un thread secondario, sarà questo a dover attendere la fine delle operazioni, come effettivamente riscontrato. Si deve creare un thread secondario per ciascun metodo da eseguire, delegando a ciascuno il compito di effettuare le operazioni del caso in un contesto separato.

Non ho comunque compreso bene la struttura con cui abbiamo a che fare; eventualmente, descrivi meglio il panorama, cioè le finalità d'uso dell'architettura, il motivo per cui sono state scritte e quello che si vuole ottenere in termini pratici.

Ciao!