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

Boost C++ Discussion :

Remplacer SendMessage/PostMessage par boost::?


Sujet :

Boost C++

  1. #1
    Membre éclairé
    Profil pro
    System Integration Project Manager
    Inscrit en
    Octobre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : System Integration Project Manager
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 219
    Par défaut Remplacer SendMessage/PostMessage par boost::?
    Bonjour a tous,

    nous avons developpé une bibliothèque de calcul qui est utilisé en mode multithread. Pour communiquer avec l'application, on utilise PostMessage en conjonction avec une notification créé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #define ON_COMPUTATION_FINISHED_NOTIFY() \
    { LM_COMPUTATION_FINISHED_NOTIFY, 0, 0, 0, AfxSig_vwl, \
    (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, LPARAM)) OnComputationFinishedNotify }
    Comme on envisage de s'affranchir des MFC et de passer sous Qt pour le GUI, on cherche comment remplacer ce mecanisme..
    Je me demandais donc si on pouvait avoir le meme genre de mécanisme avec boost::signal par exemple ?

    Merci de toute aide ou avis

    Vincent

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut,
    Boost.Signal 2 est thread-safe alors qu'il me semble que ça n'est pas garantie pour Boos.Signal.
    En revanche, pas sur que le mécanisme soit équivalent. Dans le cas windows, tu poste un message dans une file dans le thread T1 et ce message est ensuite traité suite à son extraction dans une pompe à message dans le thread T2.
    Avec les signaux, tu n'as pas cette notion de pompe à message et je pense que l'appel du foncteur se fait dans le même contexte de thread que celui déclenche le signal.
    Il faut probablement regarder comment fonctionnent tes différentes tâches avant de savoir si boost.signal peut ou pas s'adapter à ta problématique sans trop de soucis. Mais ce ne sera pas à 'iso-'comportement.

  3. #3
    Membre éclairé
    Profil pro
    System Integration Project Manager
    Inscrit en
    Octobre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : System Integration Project Manager
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 219
    Par défaut
    Bonjour,

    merci de ta reponse.
    En fait, ce qu'on fait tient + de l'IPC, il faudrait donc qu'on regarde de ce coté la peut etre ...

    V

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    IPC c'est du inter-process. Le swap de contexte entre process est un peu plus lent que celui des threads. Cependant, il me semble que boost.Inter process fonctionne aussi pour les threads. A creuser. Il y a peut être aussi boost.thread qui peut te proposer des mécanismes d'échanges entre thread.
    En fait, ce que je vois de ce que tu décris, c'est plutôt que tu utilises un mécanisme de message pour faire tes échanges. Les mécanismes IPC et threads utilisent en général un mécanisme d'attente (ou de polling). Ce sont 2 approches un peu différentes.

  5. #5
    Membre éclairé
    Profil pro
    System Integration Project Manager
    Inscrit en
    Octobre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : System Integration Project Manager
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 219
    Par défaut
    Re

    effectivement, apres avoir regardé Boost.Interprocess, ca ne me parait etre adequat ...

    Je vais regarder du cote de Boost.Thread

    V

Discussions similaires

  1. [Système] Remplacer une chaine par un lien hypertexte
    Par Bisûnûrs dans le forum Langage
    Réponses: 10
    Dernier message: 06/06/2007, 09h34
  2. Réponses: 2
    Dernier message: 26/07/2005, 21h44
  3. Réponses: 5
    Dernier message: 30/05/2005, 16h58
  4. Réponses: 2
    Dernier message: 15/03/2005, 15h40
  5. Remplacer plusieurs colonnes par un 'alias'
    Par zestrellita dans le forum Langage SQL
    Réponses: 7
    Dernier message: 22/04/2004, 16h51

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