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 :

comment utiliser une section critique avec les mfc?


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Par défaut comment utiliser une section critique avec les mfc?
    Bonjour,

    tout est dis dans la question!! j'ai trouvé ce cour theoriquesur le net. mais c'est pas detaillé!! j'ai pas su comment l'appliquer en mfc!

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Par défaut
    voila ce que j'ai fait (apres de longue recherche sur le net!!)

    dans maclasse.h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <afxmt.h>
    static CCriticalSection sc;
    dans maclasse.cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CCriticalSection maclasse::sc;
    sc.Lock();
    // section critique: les instructions faites par un seul thread a la fois
    sc.Unlock();
    apparament ça marche bien!!
    j'aimerai bien que quelqu'un me corrige si j'ai tort!

  3. #3
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    C'est tout bon
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Par défaut
    Merci pour la confirmation

  5. #5
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    C'est tout bon, mais tu pourrais encore aller plus loin avec un objet lock

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class CMyLock
    {
       public:
       inline CMyLock(CCriticalSection & CS) { m_cs = CS; m_cs.Lock(); }
       inline ~CMyLock(void) { m_cs.Unlock(); }
     
       private:
    CCriticalSection & m_cs;
    }
    ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    static CCriticalSection sc;
     
    {
       CMyLock lock(sc);   // lock la section critique et le destructeur se charge de delocker la section critique
    }
    Code non testé, c'est juste l'idée.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Par défaut
    je vois pas trop comment le faire!!

    en plus j'ai un petit soucie, lorsque je met 2 section critique l'une a la suite de l'autre;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sc1.Lock();
    //sc1
    sc1.Unlock();
    sc2.Lock();
    //sc2
    sc2.Unlock();
    j'obtient le meme message d'erreur que j'obtenait avant de mettre la section critique!! la seule diff c'est qu'il met plus de temps pour m'envoyer le message!

    comment pouvez vous expliquez ça?

  7. #7
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par Djawida Voir le message
    j'obtient le meme message d'erreur que j'obtenait avant de mettre la section critique!! la seule diff c'est qu'il met plus de temps pour m'envoyer le message!
    C'est quoi le message d'erreur ?
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  8. #8
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Par défaut
    Debug assertion failed !

    Program: monProgram.exe
    File: dbgheap.c
    Line: 1044

    Expression: _ctlIsValidHeapPointer(pUserData)


    nb: a l'interieur de ma section critique je fais des requetes MYSQL!! (je pense pas que c'est la cause mais sait on jamais!!)

Discussions similaires

  1. Réponses: 15
    Dernier message: 23/03/2009, 16h07
  2. comment utiliser une library C avec g++
    Par pichouss dans le forum C++
    Réponses: 4
    Dernier message: 22/05/2008, 18h08
  3. Comment utiliser une datasource JNDI avec JDBC?
    Par KING_OF_GRACELAND dans le forum JDBC
    Réponses: 6
    Dernier message: 08/04/2008, 18h18
  4. Réponses: 1
    Dernier message: 03/05/2006, 10h49
  5. Charger et afficher une image jpg avec les mfc
    Par glop - pas glop dans le forum MFC
    Réponses: 3
    Dernier message: 11/02/2004, 18h59

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