Salut!
Voila j'utilise les sockets dans mon application et comme j'ai des fonctions bloquantes (recvfrom) j'ai placé tout ca dans un thread.
Maitenant quand je clique sur mon bouton j'appelle le thread.
Seul problème c'est que mon appli reste figée, mon bouton enfoncé !
Bref aucune difference par rapport a avec ou sans thread !
Pouvez vous m'aider ?
Le code de mon thread (enfin juste le début car après c'est les sockets..) :
Mon appel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 DWORD WINAPI HebergementPartie(void * thPartie) // Avec un thread on a un type void * (on peut mettre ce qu'on veut) { InfosPartie * PartieCree = thPartie; // On indique qu'on veut travailler sur une structure InfosPartie pour notre variable e/s [....] // Le reste du code ...
Je vois pas trop ce qui coche !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 InfosPartie MaPartie; HANDLE hdlThreadServeur; DWORD CodeRetourThread; hdlThreadServeur = CreateThread(NULL, 0, HebergementPartie, &MaPartie, 0, NULL); // On lance le thread pour une ecoute UDP en attente de demande d'infos, ou de connexion // faire une animation d'attente WaitForSingleObject(hdlThreadServeur, INFINITE); // On attend que le thread se finisse naturellement GetExitCodeThread(hdlThreadServeur, &CodeRetourThread); // Puis on recupere le code de retour du thread if(CodeRetourThread != -1) { // On ferme toutes les fenetres et on demarrer la partie }
Partager