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 :

Comment exécuter une dernière tache lors qu'un processus est tué?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 66
    Par défaut Comment exécuter une dernière tache lors qu'un processus est tué?
    Bonjour,

    j'ai un problème car j'utilise une application (Console) qui lance des dispositifs UPnP.
    Je souhaiterai que lorsqu'elle se termine tous les dispositifs soit stoppés!!!

    Cela fonctionne bien lorsque je fais ctrl+C (je m'abonne à l'évènement et j'effectue une dernière tache).

    Mais depuis, je peux que mon application s'arrête lorsque le capteur USB à laquelle mon appli est liée est débranchée. Pour cela je détecte grâce à une application (usbdeview) que l'on a débranché le capteur et j'exécute la fonction taskkill.exe /IM mon_appli

    Sauf que même en modifiant le destructeur de mon application pour lui dire explicitement de stopper tous les dispositifs, les dispositifs ne sont pas arrêtés!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ~Program()
            {
                foreach (NewsteoDevice device in devices)
                {
                    device.device.StopDevice();
                }
            }
    Je cherche donc une solution

    Quelqu'un pourrait-il m'apporter une aide?

    Merci,
    L'elfe d'azur

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    Quand tu "tues" un process violement par une destruction du process par exemple via le "task manager", l'application tué n'est pas "avertie" qu'elle va mourir.. donc, un moyen serait d'envoyer un message via SendMessage par exemple poru dire à ton application, tu dois mourir...sinon, je ne vois pas trop d'autres solutions dans la mesure ou la demande de "tuer" n'est pas directement soumise par "TON" application

  3. #3
    Membre éclairé Avatar de Colbix
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 266
    Par défaut
    Salut

    Si tu travail avec un form, tu peux utilise le OnClose sur ton form principale. Si ton programme se fait tuer par le TaskManager le programme passera tout de même par ce code.

    Si tu es en mode console : Comme l'as dit theMonz31, essaye de joueur avec des signaux pour prévenir ton programme qu'il va se faire tuer.

    +

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 602
    Par défaut
    Citation Envoyé par Colbix Voir le message
    Salut

    Si tu travail avec un form,
    Le monsieur il a dit "j'utilise une application (Console)"

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 66
    Par défaut
    Merci pour vos réponses!!!!

    Effectivement avec un form, ça a l'air tout de suite plus simple :-).

    Mais bon je n'ai pas besoin d'interface graphique normalement donc dans un premier temps, je vais essayer de voir comment fonctionne les signaux et SendMessage en C#.

    Si vous avez un lien d'exemple vers des SendMessage, ça m'intéresse (sinon je cherche, j'ai l'habitude).

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/04/2008, 15h26
  2. Réponses: 2
    Dernier message: 25/03/2008, 18h14
  3. Comment exécuter une API windows via php ?
    Par mikemead dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 31/03/2006, 10h19
  4. Comment exécuter une requête rapidement
    Par kardevlop dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/10/2005, 13h45
  5. Comment exécuter une DLL ?
    Par chleuh dans le forum Langage
    Réponses: 4
    Dernier message: 29/06/2005, 14h27

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