Bonjour,
Apr�s de longues recherches sur le forum, je n'ai pas trouv� de cas similaire donc je ne pense pas vraiment que mon probl�me est r�current.
Id�e principale: Je souhaite lancer une application serveur et plusieurs applications clients, les applications clients se connectant au serveur via send() et recv() avec un syst�me de thread que je poss�de d�j�.
Il y a donc un thread listen sur le serveur qui cr�e automatiquement un thread suppl�mentaire pour chaque client avec un recv(). La fermeture client est contr�l�e, la fermeture du serveur ferme tous les clients via un syst�me de paquets avec lecture d'ent�te. Pour le fonctionnement serveur / clients, tout fonctionne. Je pars donc d'un programme qui roule.
C'est la que ca se complique. Je suis parti d'un mode console pour passer au mode graphique. J'utilise les MFC car j'ai Visual.NET.
J'ai commenc� un projet MFC, de type boite de dialogue pour mon serveur. J'ai fait mon interface en ins�rant des composants sur ma boite, et plac� un (CMyDialog:UpdateData() apr�s avoir modifi� mes variables d'initialisation et de d�but de programme.
Mais voil�, je souhaite avoir la mise � jour de ces variables d�s lors que les clients arrivent sur le serveur. Comme je ne peux pas mettre d'UpdateData() dans mes threads car ils seraient isol�s de la classe de la boite de dialogue (j'ai essay�, ca n'a pas march� mais j'ai vu que les attributs de la boite de dialogue �taient exportables). J'ai tent� de mettre un timer avec la fonction (CMyDialog:OnTimer() dans mon thread. Rien y fait.
Je voudrais donc savoir s'il y a une solution �l�gante pour mettre � jour les �l�ments de la bo�te de dialogue.
J'ai r�fl�chi que le DoModal() peut �tre la cause de ce probl�me. Mais je n'ai pas d'id�e pour pouvoir g�rer efficacement le probl�me.
En rajoutant un Timer, ca ne marche pas (je placais le SetTimer() et le OnTimer() dans cette m�thode, et un KillTimer dans le OnOk() + OnCancel().
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2// Ici il y avait du code mais il était périmé. Il a été retiré car il nuisait à la compréhension générale.
J'ai essay� de mettre le OnTimer dans un thread gr�ce � un pointeur sur la classe CDialog, ca ne marche pas non plus.
J'attends donc vos suggestions. Merci d'avance.
Partager