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 :

Exécution d'une méthode par un thread


Sujet :

C#

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Points : 218
    Points
    218
    Par défaut Exécution d'une méthode par un thread
    Bonjour,

    je me pose une ptite question à propos des threads,
    en fait, je ne m'y connais pas trop
    et là, j'en utilise dans un projet mais je sais pas si c'est très propre ce que je fait...
    j'en doute...

    donc voilà :
    j'ai une méthode 'methode1' qui est une méthode de callback provenant d'une dll extérieure et qui doit lancer ma méthode privée 'methode2'
    le problème c'est qu'il faut que 'methode1' soit terminée pour que 'methode2' puisse se dérouler correctement...

    donc je me suis dit qu'un ptit thread serait pas mal...
    donc j'ai un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void methode1()
    {
        // blabla...
        Thread monThread = new Thread(new ThreadStart(methode2));
        monThread.Start();
    }
    mais donc, comme ma méthode 'methode1' est appelée de manière récurente, je crée plein de threads et je me demande si c'est bien...
    parce qu'il ne faudrait pas les détruire les threads, non?...

    j'ai bien pensé à mettre le thread en variable membre
    mais je ne sais pas si on peut faire plusieurs start sur un même thread?...

    merci de m'ôter ce ptit doute
    et de me dire comment faire...

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    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 154
    Points : 25 072
    Points
    25 072
    Par défaut
    un thread démarre sur une sub
    à la fin de la sub, il est détruit

    garder une référence dessus via une variable ne peut servir qu'à connaitre l'état, le mettre en pause, ou éventuellement l'arreter en cours
    mais un thread ne peut démarrer qu'une fois, et il est obligatoire d'en instancier un nouveau à chaque fois

    donc ton code est plutot correct

    après ca depend des traitements, si tu demarres un thread toutes les secondes et qu'un thread dure 3 secondes, ca va finir par planter


    il y a aussi la classe threadpool qui permet de dire que tu en veux que x en meme temps et qui s'occupe de démarrer ceux qui sont en file d'attente
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/03/2010, 19h36
  2. Réponses: 15
    Dernier message: 04/10/2007, 10h37
  3. Réponses: 4
    Dernier message: 31/10/2006, 09h12
  4. Réponses: 2
    Dernier message: 05/07/2006, 11h07
  5. Non exécution d'une méthode repaint()
    Par Flophx dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 05/05/2006, 18h04

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