Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Threads 2, le retour! [ Archives / Au secours ] (goondy)

samedi 11 décembre 2004 à 22:10:40 | Threads 2, le retour!

goondy

Bon, grace a vecchio56, j'ai pu claquer mon thread comme il fallait (cf http://cppfrance.com/forum.v2.aspx?ID=349494&nb=9).

J'explique le truc : j'ai une classe qui hérite d'un CDialog. Dans cette classe, un thread qui s'occupe de faire des choses pour que l'affichage se rafraichisse comme il faut.

THE problème : je veux que la fenetre de Dialog se ferme quand le thread se termine...

-> si je veux fermer la fenêtre à partir du thread, ca plante... et c'est normal car c'est le thread père qui a s'occupe de la fenêtre.

-> si j'attends la fin du thread fils pour provoquer la fermeture dans le thread père (WaitForSimpleObject), bah l'attente est bloquante et empeche le rafraichissement du CDialog... et en plus il attend sans fin ce c*n o_O'


Question : je fais comment moi? Je peux envoyer un signal à partir du thread fils vers le pater pour lui ordonner de femer la fenêtre... Si oui, comment (un poil de détails serait chouette ;))

Merci d'avance

--------------------------------
cd /usa/whitehouse
rm -rf *

samedi 11 décembre 2004 à 22:46:25 | Re : Threads 2, le retour!

vecchio56

Administrateur CodeS-SourceS
Je sais pas si c'est très académique, mais moi j'envoie un message à la fenêtre concernée, juste avant le return du thread

SendMessage(hWnd, WM_THREADFINISHED, codeRet, 0);


Tu définis le message WM_THREADFINISHED par (WM_USER + 1) par exemple, pour être sur qu'il n'y a pas de confusion avec un autre message

dimanche 12 décembre 2004 à 07:04:58 | Re : Threads 2, le retour!

goondy

Arf, ma classe hérite de CDialog, en MFC ... et du coup j'ai pas de fonction de callback pour capter les messages...

Ca m'énerve, je cherche sur le net pour éviter de faire le boulet, mais c tout du win32, niet en MFC.

Tu pourrais me dire :

1 - comment choper le hWnd de mon Cdialog pour envoyer le message
2 - comment définir une fonction de callback, ou si elle existe en mfc, elle ressemble à quoi.
3 - comment je capte le message
4 - WN_USER .. je chope ça ou?

Merci!

----------------------------------------
cd /usa/whitehouse
rm -rf *

dimanche 12 décembre 2004 à 08:41:19 | Re : Threads 2, le retour!

goondy

C'est bon, tout est détaillé là : http://shrek.wccnet.edu/~chasselb/win293/ClassNotes/Threads.html

Très bon lien pour faire ça : en 5 minutes c'était fait.

@vecchio56 : j'ai lu qu'il fallait utiliser "AfxBeginThread" avec les MFC, et qu'il vallait mieux utiliser "PostMessage" pour ce cas. Merci pour tout mec! ;)

----------------------------------------------
cd /usa/whitehouse
rm -rf *

dimanche 12 décembre 2004 à 10:30:10 | Re : Threads 2, le retour!

BruNews

Administrateur CodeS-SourceS
Toujours PostMessage en pareil cas.

ciao...
BruNews, MVP VC++



Cette discussion est classé dans : classe, fenêtre, thread, threads, retour


Répondre à ce message

Sujets en rapport avec ce message

Lancer une thread intraclasse [ par rudyg ] Salut tout le monde,depuis une methode de classe, je souhaite lancer une thread faisant appel a une AUTRE methode de la meme classe.Ex:void kernel::La Classe Thread [ par karakompact ] Pour mon travail et dans le but de créer une application, il me faut développer une classe Thread permettant de gerer le multitache..J'ai déjà ce type timer dans des threads [ par z3bul0n ] Comment faire pour gérer un SetTimer créé dans un thread sans utiliser de fonction : j'aimerai recevoir le WM_TIMER à chaque fois qu'il y en a un dans ClassName [ par garslouche ] Bonjour à tous,quand j'utilise Spy++ sur des fenêtres de programmes qui ne sont pas de moi, il donne le texte de la fenêtre et le nom de la classe. Co Threads et heap privé [ par mzhunix ] Salut à tous,je crée un heap privé "hHeapPrivate" dans le thread principale avec HeapCreate j'alloue quelques pointeurs dessus puis je crée un autre t à propos des threads [ par GUERRIER_ABSOLU ] Salut, je voudrais savoir s'i quelqu'un a déjà essayé d'appeler une fonction dans un thread et a remarqué quelque chose d'innatendu. En fait quand j'a Accès aux objets MFC à partir de threads non-MFC (gros bras demandé) [ par Hell Dom ] Bonsoir,Mon problème vient du fait que je ne sais pas comment le faire proprement.Donc en gros, j'ai une boite de dialogue qui lance un thread, ce der Help (threads) [ par loicus ] Bon, bhen voila.. j'essaye de faire un threadj'aimerais ouvrir la fonctions LCD_BootScreen() dans un thread, donc j'utilise cette fonction :thboot= Cr Help (threads) [ par loicus ] Bon, bhen voila.. j'essaye de faire un threadj'aimerais ouvrir la fonctions LCD_BootScreen() dans un thread, donc j'utilise cette fonction :thboot= Cr thread priorité ? [ par sleeper41 ] Voila je medemandé si la priorité des threads pouvait influencer sur le compoirtement général du système.En fait j ai créer une appli qui lance plusie


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,20 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.