Ciao,
ho un progetto in C++ il quale alla sua esecuzione legge una lista di numeri
100
25
37
48
e memorizza il suo numero in una variabile globale per il suo utilizzo da parte di alcuni cicli.
Quello che non mi spiego è che senza generare alcun errore tale variabile dopo un certo numero di cicli si azzera e forse mi sfugge qualcosa che non ho ancora assimilato in merito alle eccezioni ed ai thread.
codice:
DWORD WINAPI ThreadPro( LPVOID lpParameter )
{
FILE *fp;
char tmpbuf[20];
int n=0;
fp=fopen("lista.txt","r");
while(fgets(tmpbuf,sizeof(tmpbuf),fp) != NULL)
{
tmpbuf[strlen(tmpbuf)-1]='\0';
ArrayLista[n++]=atoi(tmpbuf);
}
fclose(fp);
while(!bAbort) // ciclo all'infinito XY
{
for(int i=0; i < n; i++)
SendMyMessage(ArrayLista[i]);
// qui in maniera pseudocasuale n si azzera nonostante
// il codice esterno al while non viene più letto, ma solo allo start del thread
}
}
void SendMyMessage( char *msg)
{
for(int actconn = 0; actconn < Form1->ServerSocket1->Socket->ActiveConnections; actconn++)
Form1->ServerSocket1->Socket->Connections[actconn]->SendBuf(msg, len);
}
magari mi sfugge qualcosa
Grazie 1000