Actualité informatique
Test comparatif matériel informatique
Jeux vidéo
Astuces informatique
Vidéo
Télécharger
Services en ligne
Forum informatique
01Business

|-  LOGICIELS


|||-  

Problème de PostThreadMessage

 

1 utilisateur anonyme et 40 utilisateurs inconnus
Ajouter une réponse
 

 
Page photos
 
     
Vider la liste des messages à citer
 
 Page :
1
Auteur
 Sujet :

Problème de PostThreadMessage

Prévenir les modérateurs en cas d'abus 
icare_oliv​ier
icare_olivier
Sur la bonne voie (de 100 à 499 messages postés)
  1. Posté le 14/08/2005 à 18:09:07  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
J'expose mon problème :
 Je programme une application multithreadée en C++ avec les librairies windows
 Afin de communiquer entre mes threads, j'ai cette fonction, qui permet d'envoyer des données via un pointeur (le dernier paramètre).
 Précision : l'identifieur threadID est un enum :/   et la classe threads est un singleton, mais ca n'est pas important...tout ce qu'il faut savoir c'est que la fonction sendMsg et l'identifieur threads::id sont des membres statics de cette classe.

 void threads::sendMsg(threadID thr ,int typeflag ,int size ,void* data)
 {
  if( ! PostThreadMessage(threads::id[thr],(UINT)data,typeflag,size) )
   MessageBox(NULL,"message non envoyé","erreur",MB_OK);
 }


 Une fois les threads créés, et les messages queues de ces threads opérationelles, j'appelle la fonction sendMsg comme suit depuis un autre thread.
 
 void* ins = new instruction("../maps/test.tvm"​);
 threads::sendMsg(PHYSIC,LOAD,0​,ins);
 threads::sendMsg(PHYSIC,LOAD,0​,NULL);



 Et c'est à ce moment là que je tombe sur un problème que je n'avais jamais vu :
 Le premier appel renvoie un message d'erreur, alors que le deuxième non.
 En fait, c'est l'appel qui a un pointeur valide qui foire et qui fait appel à

 MessageBox(NULL,"message non envoyé","erreur",MB_OK);

 J'ai changé l'ordre d'appel, j'ai fait des dixaines d'appels successifs, j'ai tout bidouillé pour voir s'il ne s'agissait que d'une erreur de lancement du genre "le premier message foire", mais non ... quoi que je fasse, les appels avec pointeur valide foirent, et ceux avec pointeur NULL réussisent !

 si quelqu'un comprends ca... je serais vraiment honoré qu'il me donne la solution de mon problème  :whistle:

 Une précision : la doc microsoft dit à propos de sendThreadMessage :
 



 
 Call PostThreadMessage. If it fails, call the Sleep function and call PostThreadMessage again. Repeat until PostThreadMessage succeeds.




 J'ai essayé...ca ne marche pas pour autant  :heink:

 Page :
1

Aller à :
 

Sujets relatifs
Sony VAIO VPCZ1-> problème de démarrage problème EZARC.msi
windows 8.1 problème 0x80070005-0x4000D problème mise a jour windows update
problème active x avec un logiciel. probleme modificationparametre pc
Problème d'installation windows vista Probleme "ouvrir avec' sous XP SP3
Bizarre probleme avec VLC Problème lancement java
Plus de sujets relatifs à : Problème de PostThreadMessage

Les 5 sujets de discussion précédents Nombre de réponses Dernier message
recherche qqn 8
espace web 5
la programmation 3
page plein ecran 9
page plein ecran 0