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 Forms Discussion :

Stopper un thread avec un bouton


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut Stopper un thread avec un bouton
    Bonjour à tous et bonne année ,
    J'ai réussi à créer un thread, il fonctionne cependant je n'arrive pas à la stopper avec mon bouton, d'où cela pourrait provenir ?
    Voici le code pour la déclaration du thread et le lancement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            private void B_Lancer_Click(object sender, EventArgs e)
            {
                ThreadStart delegue = new ThreadStart(Consult);
                Thread monThread = new Thread(delegue);
                monThread.Start();
            }
    Puis ce que fait mon thread :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private void Consult()
            {
                while (Thread.CurrentThread.IsAlive)
                {
                    ...
                }
     
            }
    Merci d'avance pour votre aide

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 337
    Points : 456
    Points
    456
    Par défaut
    Utilise la méthode Abort() pour arrèter le thread ou Suspend() pour le suspendre

    mais pour ce-là il faudrait déclarer ton thread en variable de classe, pour pouvoir le Abort ou Suspend dans ton bouton arrêter.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Merci, tu peux me donner un exemple de ce qu'il faudrait que je mettes dans la classe stp ?
    Merci d'avance

  4. #4
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Code C# : 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
    // Je suppose que tu code directement dans ta form
    Class myForm : Form
    {
        Thread monThread;
     
        private void B_Lancer_Click(object sender, EventArgs e)
        {
                ThreadStart delegue = new ThreadStart(Consult);
                this.monThread = new Thread(delegue);
                this.monThread.Start();
         }
     
        private void B_Stop_Click(object sender, EventArgs e)
        {
                // Stop le thread
                this.monThread.Abort()
         }
    }
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Merci ça fonctionne à moitié, pour le bouton lancer j'ai enlevé le this par contre pour que cela fonctionne.
    Cependant, j'ai un avertissement :
    Le champ 'P_PH.F_Thread.monThread' n'est jamais assigné et possédera toujours sa valeur par défaut null
    Et une erreur quand je stoppe la boucle :
    La référence d'objet n'est pas définie à une instance d'un objet.
    Edit : Je vois que tu as fait des changements, je teste merci

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Merci beaucoup pour ton aide cela fonctionne parfaitement, et hop résolu.

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

Discussions similaires

  1. Java desktop application - demarrer et stopper un thread en appuyant sur un bouton
    Par zimoun dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 22/10/2009, 01h57
  2. Problème pour stopper thread avec runnable
    Par fabou3377 dans le forum Concurrence et multi-thread
    Réponses: 3
    Dernier message: 13/03/2008, 13h43
  3. Stopper le programme avec un THREAD
    Par Mamat31 dans le forum Threads & Processus
    Réponses: 2
    Dernier message: 13/06/2007, 10h48
  4. Thread avec une fonction membre d'une classe
    Par SteelBox dans le forum Windows
    Réponses: 6
    Dernier message: 01/03/2004, 01h15
  5. [VB6][active x] faire du multi-thread avec vb
    Par pecheur dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/05/2003, 12h01

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