IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Multithreaded User Interface


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    D�cembre 2004
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2004
    Messages : 32
    Par d�faut Multithreaded User Interface
    Bonjour !

    J'ai un souci avec la l'utilisation des MFC. Je sais ca devient vieux, plus personne ne les utilise .... et pourtant ! ;o)

    Voila mon pb :
    dans mon application j'ai un thread non MFC qui tourne et qui envoie des messages � une fenetre de mon appli. Cette fenetre traite ensuite les messages, mais parfois le traitement est couteux et peut demander du temps. Du coup je n'ai plus la main sur mon application, je ne peux pas arreter le process, etc ...

    Ce que je voudrais, c que la fenetre qui recoit les notifications, ait une boucle de message a part, ind�pendante de la boulce des messages de l'appli. Cela de mani�re � toujours garder la main, m�me si les traitements effectu�s par cette fen�tre sont longs.

    J'ai un peu tout essay� avec la classe CWinThread mais sans succ�s.

    Quelqu'un aurait-il une solution la dessus ?

    merci
    Mike

  2. #2
    Membre �prouv� Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    951
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Artisant logiciel
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 951
    Par d�faut
    j'ai pas tout compris...

    pour ne pas bloquer ton gui, tu veut cr�er un second gestionnaire d'evenements?

    mais si il n'est pas lui meme dans un thread, cela bloquera quand meme ton gui, non?

    la solution que je voit, c'est de lancer un nouveau thread pour tes traitements "longs"...

  3. #3
    Membre averti
    Inscrit en
    D�cembre 2004
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2004
    Messages : 32
    Par d�faut
    merci de l'interet que tu portes a mon pb
    mon thread envoie un message WM_TOTO � ma fenetre
    celle ci recoit le message et lance un traitement.

    Pendant le traitement j'aimerai faire autre chose dans mon appli (appuyer sur un bouton par ex), seulement vu que je suis deja en train de repondre a un message, il faut que j'attende la fin de ce traitement pour lancer une commande.

    je veux que la boulce des messages (GetMessage / Translate / Dispatch) de l'application ne se preoccupe pas de ma fenetre qui recoit les notifications. La fenetre qui recoit les notifs est une fenetre mfc de l'appli mais elle n'a rien a voir avec, je veux donc que ses traitements soient independant des actions que l'utilisateur effectue sur les autres fenetres.

    yo ?
    merci
    Mike

  4. #4
    Membre exp�riment�
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Par d�faut
    Salut,

    et si la fen�tre qui re�oit le message cr�e elle m�me un thread pour la gestion de la t�che qui lui a �t� envoy�?

  5. #5
    Membre averti
    Inscrit en
    D�cembre 2004
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2004
    Messages : 32
    Par d�faut
    Salut Neo41,

    c pour l'instant la seule solution valable. J'aurais voulu y arriver autrement mais pas facile de tout comprendre sur les mfc.

    merci
    Mike

  6. #6
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    moi j'implanterai un autre thread au niveau de la fenetre de traitement.
    celui ci realise les traitements couteux et envoi d'eventuels infos a la fenetre d'affichage.
    et de maniere generale:
    si il y a plusieurs traitements a lancer le mieux c'est a chaque requete du thread de traitement:
    Cr�ation d'un thread qui fait son boulot et se ferme quand il a fini.

    Note:
    J'ai un souci avec la l'utilisation des MFC. Je sais ca devient vieux, plus personne ne les utilise .... et pourtant ! ;o)
    venir dire �a sur un forum dedi� aux MFC c'est de la provoque.
    certes c'est vieux mais �a a evolu� ,le "plus personne ne les utilise" je demande a voir .


  7. #7
    Membre averti
    Inscrit en
    D�cembre 2004
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2004
    Messages : 32
    Par d�faut
    Salut Farscape !

    non c pas de la provoque de dire que plus personne n'utilise les mfc ... ce n'est pas non plus vrai ...mais vu que c abandonn� par microsoft, il faut s'assoir sur les evo, les bugs, etc ... enfin bref.

    Pour mon pb, j'utilise un thread interne a ma fenetre. Celle ci insere les messages dans une liste et le thread les traite aussi vite qu'il le peut. Je ne peux pas utiliser plusieurs thread, je dois eviter d'empiler des messages identiques dont le tps de traitement est long, donc un seul thread me convient et ca marche.

    Par contre je continue qd meme a avoir des ralentissements dans mes autres fenetres. Mon application est une application MDI. Je pensais que cela pouvait venir des commandes OnUpdate... mais qd j'ouvre une boite de dialogue il n'y a plus de commandes OnUpdate et pourtant j'ai des ralentissements...

    une idee ?
    merci
    Mike

  8. #8
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    Citation Envoy� par Mike@Nestor
    Salut Farscape !

    non c pas de la provoque de dire que plus personne n'utilise les mfc ... ce n'est pas non plus vrai ...mais vu que c abandonn� par microsoft, il faut s'assoir sur les evo, les bugs, etc ... enfin bref.

    Pour mon pb, j'utilise un thread interne a ma fenetre. Celle ci insere les messages dans une liste et le thread les traite aussi vite qu'il le peut. Je ne peux pas utiliser plusieurs thread, je dois eviter d'empiler des messages identiques dont le tps de traitement est long, donc un seul thread me convient et ca marche.

    Par contre je continue qd meme a avoir des ralentissements dans mes autres fenetres. Mon application est une application MDI. Je pensais que cela pouvait venir des commandes OnUpdate... mais qd j'ouvre une boite de dialogue il n'y a plus de commandes OnUpdate et pourtant j'ai des ralentissements...

    une idee ?
    merci
    Mike
    et bien tu es tres mal inform� ,MS n'a pas l'intention a ce jour d'arreter les MFC ,
    qui sont donc toujours disponibles dans Visual 2005 (MFC8.0) avec de nouvelles fonctionnalit�s .
    a moins que je ne soit plus a jour et que tu as un article de microsoft confirmant ton propos ?
    Parce que moi j'ai �a sous la main:
    http://msdn.microsoft.com/visualc/whidbey/mfc2005/default.aspx


  9. #9
    Membre averti
    Inscrit en
    D�cembre 2004
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2004
    Messages : 32
    Par d�faut
    je n'utilise pas VS2005 et jusqu'a present les documentations MFC n'etaient plus dispo dans la plateforme SDK. De plus dans vs2003 plein de fonctionnalit�s MFC presentes dans VS6 ont ete supprim�es. C'etait donc une constatation personnelle mais erron�e, d�sol�.

    En tout cas je suis tres content de savoir cela, il va donc falloir que je passe sous VS2005. Ca me rassure beaucoup car je ne comprenais pas comment faire une appli sans code semi interprete ni garbage collector avec .NET. MFC is still alive ! excellent

    merci pour tes lumieres, et si tu en as concernant mon pb je suis preneur

  10. #10
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    pour tes ralentissements si tu as des boucles de traitement �a peut etre normal.
    essaye d'integrer une pompe a messages dans tes traitements voir faq:
    http://c.developpez.com/faq/vc/?page...rk#PumpMessage

Discussions similaires

  1. R�ponses: 5
    Dernier message: 24/05/2007, 15h00
  2. [Yahoo UI] Utilisation de la librairie Yahoo user interface
    Par jeromek dans le forum Biblioth�ques & Frameworks
    R�ponses: 1
    Dernier message: 04/05/2007, 14h09
  3. Utilisation de UIA (User Interface Application Block)
    Par the big ben 5 dans le forum Delphi .NET
    R�ponses: 2
    Dernier message: 16/11/2006, 09h09
  4. R�ponses: 5
    Dernier message: 14/11/2006, 15h57
  5. R�ponses: 18
    Dernier message: 09/08/2006, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo