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

Windows Discussion :

CreateProcess suivie ou non de WaitForSingleObject


Sujet :

Windows

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 46
    Points : 38
    Points
    38
    Par défaut CreateProcess suivie ou non de WaitForSingleObject
    Bonjour,
    Ci-joint un extrait de mon code qui comprend la fonction "CreateProcess". Le rôle de cette fonction est de lancer des scripts python. Cette fonction était suivie de la fonction WaitForSingleObject(pi.hProcess,60000). Mon prédécesseur l'a mise en commentaire. A la suite de cette fonction WaitForSingleObject qui n'existe plus, j'ai un CloseHandle(pi.hProcess) et CloseHandle(pi.hThread). Parfois, j'ai des scripts qui ne sont pas lancés, je ne sais pas s'il y a un lien avec cette mise en commentaire. Les questions que je me pose sont : Le code joint est juste?? Est-il important, dans mon cas, de faire un WaitForSigleObject juste après le CreateProcess?? Si oui pourquoi? Sinon pourquoi?
    Merci d'avance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    ZeroMemory(&si,sizeof(STARTUPINFO));
    si.cb = sizeof(STARTUPINFO);
    BOOL bResult = CreateProcess(
    		NULL,//szProcessName, 
    		(LPTSTR)(LPCTSTR)csCmdLine, 
    		NULL, 
    		NULL, 
    		FALSE, 
    		0, 
    		NULL,
    		(LPCTSTR)pta->pAgent->m_csServicePath,
    		&si,
    		&pi);
    
    if (!bResult)
    {		
        SnmpUtilVarBindListFree(&pta->vbList);
        delete pta;//%RA% le 28/08/08 ID 66 correction fuite mémoire SMIP
        return -1;
    }
    //Pourquoi attendre indéfiniment pour rien ?
    /*WaitForSingleObject(pi.hProcess, INFINITE);*/
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);

  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
    Bonjour,
    L'appel à WaitForSingleObject() permet d'attendre que le processus lancé se termine. En clair, on attend la fin de l'exécution du script. Selon les cas, ça peut être ce qu'il faut faire... ou non. Impossible de savoir sans le contexte.

    PS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (LPTSTR)(LPCTSTR)csCmdLine
    BEURK! On a CString::GetBuffer() pour ça!
    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. XE3: CreatePRocess et exe non trouvé
    Par Papy214 dans le forum Langage
    Réponses: 6
    Dernier message: 17/05/2013, 14h08
  2. BUG Oracle 9 AND suivi d'un OR non vérifié
    Par VincenzoR dans le forum SQL
    Réponses: 10
    Dernier message: 17/11/2006, 11h19
  3. Problème de mutex avec Waitforsingleobject non-bloquant
    Par rvzip64 dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 03/11/2005, 11h02

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