ciao,
mi stavo chiedendo a quali tipi di problemi potrebbe andare incontro un programma server che implementa un thread nel momento in cui deve inviare dati ad uno o più client.

Non ho molta esperienza in questo genere di programmazione multithread però, dato il seguente scenatio:

- il processo padre esegue un thread che continua all'infinito a creare dati
- il thread richiama una funzione SendData() la quale contiene un ciclo for() che consente di inviare i dati agli n client connessi
- il thread incrementa anche della Label poste sul form del processo padre

mi chiedo, se il thread in esecuzione è sempre e solo uno, a quali tipi di race condition potrebbe andare incontro un programma server del genere?

la SendData() in codice Borland Builder è così fatta

codice:
void SendData(AnsiString msg)
{
        try{
                for(int actconn = 0; actconn < Form1->ServerSocket1->Socket->ActiveConnections; actconn++)
                        Form1->ServerSocket1->Socket->Connections[actconn]->SendText(msg);

        } catch(...) { }
}