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(...) { } }