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

C++ Discussion :

paralleliser avec createprocess()


Sujet :

C++

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 3
    Points
    3
    Par défaut paralleliser avec createprocess()
    Bonjour,

    j'aimerais paralleliser une portion de code sous windows de la maniere suivante:
    un processus lance une automation excel
    un autre lance un enchainement de boites de dialogues.

    Je connais le principe de fork() sous Unix mais je ne vois pas trop comment faire les choses suivantes avec createprocess:
    -partager le code entre les differents processus
    -recuperer le PIDs du processus créé.

    De plus je me demande si le processus père pourra utiliser l'automation excel
    créée par le processus fils et aussi si l'automation survivra si je tue le processus fils.

    Merci d'avance...

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Hum, c'est un peu lourd d'utiliser des processus supplémentaires pour cela...

    Un programme multithreadé ne serait-il pas plus simple?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    euh ben surement mais j'avoue que si je maitrise bien les processus,
    je suis un vrai noob pour le multithreading...
    mais je demande qu'a apprendre ;o)

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ben, ce que je peux te conseiller, c'est de regarder les fonctions CreateThread() et _beginthreadex().

    N'utilise pas _beginthread() sans ex, c'est une fonction batarde qui pose certains problèmes.



    Dans l'ensemble, c'est simple: Tout processus possède au moins un thread, et _beginthreadex() permet d'exécuter une fonction dans un second thread, dans le même processus. Les deux fonctions s'exécutent "en même temps" et partagent le même espace mémoire (tous les pointeurs sont valides dans les deux). Le second thread se termine quand la fonction retourne (ou avant, si elle appelle _endthreadex()).
    Le processus se termine quand tous les threads sont terminés, avec une exception pour le main() : Tout le processus se termine quand main() retourne (cela peut être contourné en quittant main() par un appel à _endthreadex()).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    bon,ben je vais essayer tout ca...
    Merci beaucoup...
    et pis c'est vrai que El Goonish Shive, c'est enorme

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ah, enfin quelqu'un qui connait!

    Ca y est, je vois des canards démoniaques partout!
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    bah en meme temps, je connais juste parce que j'ai cliqué sur ton lien
    donc je suis pas fan depuis longtemps...

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Eh bien, quand tu auras fini de parcourir toutes les archives, plus EGS:NP et les filler comics (si ce n'est pas déjà fait), tu seras dépendant comme moi, et tu resteras suspendu au site trois/quatre matins par semaine en attendant la nouvelle planche
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Ouvrir un document sécurisé avec CreateProcess
    Par hot_metal69 dans le forum Windows
    Réponses: 3
    Dernier message: 06/01/2007, 10h29
  2. Problème avec CreateProcess.
    Par Trap D dans le forum Visual C++
    Réponses: 4
    Dernier message: 20/12/2006, 22h44
  3. Réponses: 5
    Dernier message: 31/07/2006, 10h17
  4. lancer un batch avec CreateProcess et le réduire !!
    Par hijodelanoche dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 25/01/2006, 14h40
  5. Problème avec CreateProcess
    Par maxplusplus dans le forum C++Builder
    Réponses: 2
    Dernier message: 20/07/2005, 10h55

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