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

Langage Delphi Discussion :

Tuer un processus et ceux qu'il a ouverts


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 43
    Points : 21
    Points
    21
    Par défaut Tuer un processus et ceux qu'il a ouverts
    Bonjour,

    j'ai une appli qui plante aléatoirement à la fermeture. Cela ne provient de son code mais d'un processus ouvert par un de ses composants (AbsoluteDatabase de AceComponent qui ne se ferme pas forcement). Aprés, le processeur s'emballe...

    Je pense créer un prog principal, qui ouvrirai mon appli dans un thread, surveillerai son close et fermerait alors le thread ainsi que tous ceux ouvert par l'appli (un peu comme le débugueur delphi). J'éspère ainsi ne plus avoir de processus encore ouvert.

    Comme je n'ai pas encore programmé avec des threads, je viens demander leurs avis à ceux qui maitrisent ces petites bêtes. (Mon problème principal et de tuer tous les process ouverts par l'appli)

    Merci

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Avant d'arriver à de telles extrémités, il faudrait peut-être poussé plus loin la recherche comme vérifier que tous les objets sont bien fermés et libérés

    Absolute Database a un Support, je pense que tu pars dans un délire pour un bug qui serait connu si il existait surtout pour un composant payant !
    Je pense que c'est une mauvaise manipulation qu'il faut corriger !

    Tu corriges juste le symptôme sans corriger la cause, c'est dommage !


    Sinon OpenProcess\PROCESS_TERMINATE + TerminateProcess
    Comment tuer un processus à partir de son nom ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 43
    Points : 21
    Points
    21
    Par défaut
    Merci pour ta réponse rapide

    Sinon, je pense avoir bien vérifié. Mes Units se ferment bien les unes aprés les autres (j'ai vérifié avec des alerts mises dans les finalizations) Et aprés ça plante

    Je vais refaire des tests et regarder ce que tu m'as envoyé

    Merci

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Ce n'est pas la fermeture des Unit qui compte mais que la libération des Objets soit fait avant le déchargement des DLL ou BPL

    C'est tes Destructeurs qu'il faut vérifier !

    Il y a aussi des DLL qui n'aiment pas que le FreeLibrary soient effectué depuis le Finalization en particulier si elles contient des Threads

    La fermeture des tous les objets connexion pourrait probablement libérés la DLL au moment où elle n'est plus utile, un peu comme le Garbage Collector, quand plus personne fait référence à un objet, il est libéré

    Si quelqu'un à l'info au passage, un objet COM, est-ce que lorsque toutes interfaces sont libérés, cela décharge-t-il automatiquement la DLL ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre à l'essai
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 43
    Points : 21
    Points
    21
    Par défaut
    OK,

    Ca fait pas mal de nouvelles pistes. Je vais regarder tout ça et je reviens vers le FORUM si necessaire

    encore merci

    Emmanuel

Discussions similaires

  1. Comment tuer les processus dans l'état sleeping sans EM ?
    Par David Guillouet dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/02/2005, 09h42
  2. Tuer un processus sur une machine distante
    Par nuke_y dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 16/11/2004, 09h55
  3. Comment tuer le processus ez-ipupdate
    Par berry dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 21/06/2004, 15h07
  4. Tuer le processus d'Interbase ?
    Par JezabelleTwin dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/04/2004, 13h09
  5. [VB6] [Système] Tuer un processus courant
    Par mdoyer dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 22/10/2002, 14h47

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