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

VB.NET Discussion :

Problème de Process.Start


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Par défaut Problème de Process.Start
    Bonsoir tout le monde!
    J'espère que vous allez tous bien...moi moins
    J'ai un petit soucis depuis peu,
    j'ai une appli qui lance un logiciel externe, et j'attend la fin de son exécution pour effectuer un second traitement.
    Mais voilà, de temps en temps, on va dire 1 fois sur 5, le logiciel externe se lance bien, mais impossible d'effectué le reste du traitement, du coup impossible de voir que le logiciel s'est correctement fermé.
    Comme ci il y avait une erreur sur la ligne Process.Start, alors qu'aucune exception n'est levée...
    Voici un peu la ligne qui pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    monProcess = Process.Start(appPath)
    messagebox.Show("Processus exited  : " & monProcess.HasExited)
    monProcess.WaitForExit()
    Alors : si quelqu'un à une idée de comment je pourrais faire autrement, alors alors si quelqu'un à déjà eu ce problème avec Process.start ... ça serait vachement bien

    Merci d'avance en tout cas, et bonne soirée

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    pas tout compris, l'exe se lance pas ? le waitforexit ne fini jamais ? l'exe se lance + le waitforexit sort et le programme a pas fait ce qu'il devait sans que tu le saches ?

    les programmes prévus pour etre appelé de la sorte retourne un code de sortie (exitcode), différent de 0 signifiant une erreur
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Inverse donc les deux dernières lignes, ça ira mieux.
    D'abord parce que c'est plus logique, ensuite parce que, sous la forme actuelle, ça cause le bug bien connu que tu as rencontré.

    Et si ton but était en fait d'afficher un message d'attente, il va falloir s'y prendre très différemment (lancer le processus depuis un thread enfant et notifier le thread parent à la fin).

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    plus de détails sur le bug connu ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Par défaut
    Bonjour à tous et merci déjà de vos réponses.

    J'avoue qu'en relisant ce que j'ai mis c'est pas des plus clair ...
    Je vais réessayer ce matin, alors mon application lance un processus externe, pendant cette exécution je dois effectuer des traitements jusqu'à ce que ce processus soit terminé par un utilisateur.

    Du coup avec ma méthode start je n'ai pas de soucis, le logiciel externe se lance à chaque fois, mais une fois de temps en temps, on dirait que mon programme bloque à cette ligne sans me retourner d'erreur.
    En effet j'ai des lgos juste après qui me tiennent au courant si mon processus est fermé, et une fois de temps en temps, ces lignes ne s'affichent pas. (alors que 2 fois sur 3 y'a aucun soucis avec mon code .... )
    Du coup, quand ce bug se produit, je n'arrive jamais à atteindre ma méthode WaitForExit, et du coup, il m'est impossible de vérifier que mon processus externe est bien fermé!
    Je n'arrive pas à comprendre pourquoi j'ai cette erreur juste très rarement ... mais qui me pose pas mal de problèmes!!

    J'espère avoir été un peu plus clair!
    En tout cas je vous remercie pour le temps que vous m'avez accordé!

    Bonne journée

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Pour le bug j'imagine que si le temps de traitement par l'utilisateur de la msgbox est plus long que la durée de vie du nouveau process, il n'est plus possible d'attendre la fin de ce dernier vu qu'il est déjà terminé !

    Concernant l'utilisation de ce process.start je pense qu'il y a 2 utilisations censée:

    - On lance le nouveau processus et chacun continue son bout de chemin de son coté (ouverture d'un fichier pdf, sendmail pour une fiche de contact, etc.)

    - On lance le nouveau processus sous un thread secondaire qui va effectivement glandouiller, avec le waitforexit, jusqu'à la réception de la fin du nouveau processus (bloque pas l'affichage c'est moins moche), puis va traiter son code de retour (est-ce que le nouveau process a bien fait son boulot?) puis notifie l'utilisateur du résultat, voir débloque la suite d'un processus métier.

Discussions similaires

  1. Problème Utilisation System.Diagnostics.Process.Start
    Par arngrimur dans le forum ASP.NET
    Réponses: 14
    Dernier message: 02/11/2011, 16h51
  2. petit Problème avec (Process.Start)
    Par kazylax dans le forum C#
    Réponses: 2
    Dernier message: 01/10/2011, 15h21
  3. Problème avec System.Diagnostics.Process.Start();
    Par ZeProgrammator dans le forum ASP.NET
    Réponses: 13
    Dernier message: 06/11/2009, 10h55
  4. Réponses: 3
    Dernier message: 27/09/2007, 13h55
  5. Problème de Process.Start depuis une page ASPX
    Par LudVichzme dans le forum ASP.NET
    Réponses: 3
    Dernier message: 30/04/2007, 20h05

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