bonjour,
comment peut-on envoyer des données entre thread ?
utiliser des variables globales me sembles pas terrible...
merci
bonjour,
comment peut-on envoyer des données entre thread ?
utiliser des variables globales me sembles pas terrible...
merci
Ça dépend de tes besoins:
- Variables globales + sections critiques
- Leur équivalent le plus proche: Variables sur le tas, chaque thread ayant un pointeur vers celles-ci (donné au lancement par exemple) + section critiques
- Pour des threads possédant une boucle de messages:
- Variables sur le tas + PostMessage, détruite par le destinataire
- Variable n'importe où + SendMessage()
J'utilise généralement la seconde solution, ou la troisième.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Pour moi, deux cas:
- Soit le thread a autre chose à faire, donc tourne naturellement sur une boucle infinie ---> Pas de problème
- Soit le thread doit attendre que la variable ait changé: Là, il peut être interessant d'utiliser un Event, pour faire une attente passive et non active...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
je pense utiliser la troisième solution, ça a l'air plus simple, j'ai regardé les fonctionset
Code : Sélectionner tout - Visualiser dans une fenêtre à part PostThreadMessage(threadId, UINT, 0, 0);au niveau de l'id des threads ce sera gérer par des variables globales, par contre comment convertir une chaine de caractère en UINT et inversement ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 BOOL GetMessage( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax );
Si tu ne sais pas déjà ce qu'est un message Windows, lis un tutoriel avant de te lancer dans cette solution. Cela t'évitera des confusions.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
je viens de voir qu'il est possible d'utilisermerci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 HANDLE WINAPI CreateNamedPipe( __in LPCTSTR lpName, __in DWORD dwOpenMode, __in DWORD dwPipeMode, __in DWORD nMaxInstances, __in DWORD nOutBufferSize, __in DWORD nInBufferSize, __in DWORD nDefaultTimeOut, __in LPSECURITY_ATTRIBUTES lpSecurityAttributes );
a+
C'est plus pour de l'interprocessus, ça, tu sais...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager