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 :

Multithread - Arrêter un thread parmi plusieurs existants


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2007
    Messages : 70
    Points : 54
    Points
    54
    Par défaut Multithread - Arrêter un thread parmi plusieurs existants
    Bonjour,

    J'ai deux thread qui s'exécutent en parallèle et je cherche le moyen d'arrêter l'un d'eux. Je ne sais pas comment accèder à celui que je souhaite arrêter.

    Si quelqu'un avait une piste ou un astuce, ce serait super !!

    Merci beaucoup.

    Xavier.

  2. #2
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Tout dépend de où tu veux l'arrêter. Le mieux étant souvent que le thread a tuer se suicide.
    La tu dis que tu as deux threads qui tournent en parallèle, mais ca ne dit pas comment ils ont été lancé ni depuis quel thread tu veux tuer la victime.

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2007
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    Salut,

    En fait, mes deux threads sont lancés depuis mon thread principal.
    Et j'aimerai pouvoir tuer l'un ou l'autre ou même les deux threads depuis le thread principal.

    J'espère que tu vois ce que je veux dire, et ce que j'aimerais faire...

    Merci en tout cas !

    Xavier

  4. #4
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Oui oui je vois, enfin je crois
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim th as New System.Threading.Thread(MaFonctionThread)
    th.Start() ' Lance le thread
    th.Abort() ' Tue le thread
    Et voila, c'est tout bête.
    Par contre, ta fonction "MaFonctionThread" doit supporter l'annulation. Ca se présente tout simplement : le th.Abort provoque une exception dans le thread, en conséquence ta fonction doit supporter cette exception via un Try/Catch afin de se quitter proprement.

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2007
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    OK super merci beaucoup !!

    J'avais pris les devants et étais passé par cette solution en modifiant un peu mon code.

    Par contre j'avais pas pensé à catcher l'erreur.

    Merci encore.

    A+,

    xavier

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 156
    Points : 25 075
    Points
    25 075
    Par défaut
    .abort n'est pas spécialement conseillé (c'est une exception qui est déclenchée pour y mettre fin, et quand ca tombe dans le framework c'est pas top)

    le mieux est de flagger un booléen, qui est testé régulièrement par le thread pour qu'il s'arrete de lui meme

    on encore .interrupt qui lui ne déclenche pas d'exception et arrete le thread simplement
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Attente d'un thread parmis plusieurs
    Par sone47 dans le forum Threads & Processus
    Réponses: 2
    Dernier message: 06/03/2013, 10h47
  2. [PHP 5.2] tester existance d'une variable parmis plusieurs
    Par nicoaix dans le forum Langage
    Réponses: 1
    Dernier message: 18/02/2011, 14h32
  3. Attente de la fin d'un parmis plusieurs threads
    Par barbug dans le forum Multithreading
    Réponses: 12
    Dernier message: 13/02/2009, 07h46
  4. Réponses: 18
    Dernier message: 06/04/2005, 14h09
  5. Arrêter une Thread brutalement!
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2004, 21h29

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