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 :

Changer la méthode exécuter par un thread


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 35
    Points : 34
    Points
    34
    Par défaut Changer la méthode exécuter par un thread
    Bonjour,
    j'ai ce code qui exécute une méthode Work.DoWork dans un thread newThread:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ThreadStart threadDelegate = new ThreadStart(Work.DoWork);
    Thread newThread = new Thread(threadDelegate);
    newThread.Start();
    si je veut modifier la méthode exécuter par le newThread est ce que il suffit juste de faire( autrement dit je change la méthode sans stopper le thread):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    threadDelegate = new ThreadStart(Work.AnotherDoWork);

  2. #2
    Nouveau membre du Club
    Profil pro
    Directeur développement logiciel
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur développement logiciel

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Points : 32
    Points
    32
    Par défaut
    Jamais fait mais ça m'intéresse.
    J'ai regardé dans le MSDN et je n'ai pas trouvé de possibilités (fonction, membre) représentant le threadstart. J'ai peur qu'on ne puisse pas le changer.
    Quand on fait le new thread(threadDelegate), le "pointeur" vers l'objet est copié dans l'environnement du thread. Si après tu fais threadDelegate = new autre chose, cela modifiera le "pointeur" de fonction contenu dans la variable threadDelegate, mais celui du thread ne devrait pas être impacté par ce changement et devrait resté sur l'ancien "pointeur". Il sera le seul a encore avoir une liaison vers celui-ci.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 35
    Points : 34
    Points
    34
    Par défaut
    Voici un article MSDN qui decrit la classe ThreadStart: http://msdn.microsoft.com/en-us/libr...readstart.aspx
    sion je n'ai pas trouver de solution j'ai du donc arreter le thread

  4. #4
    Nouveau membre du Club
    Profil pro
    Directeur développement logiciel
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur développement logiciel

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Points : 32
    Points
    32
    Par défaut
    Sinon tu peux faire une condition dans le threadStart (switch), basée sur un membre (int fonctionAUtiliser par exemple), qui permet d'utiliser l'une ou l'autre des fonctions.
    C'est certes moins joli mais cela devrait répondre à ton besoin.

Discussions similaires

  1. [Débutant] Méthode utilisées par 2 Threads
    Par BasicZX81 dans le forum VB.NET
    Réponses: 12
    Dernier message: 13/11/2013, 08h29
  2. Réponses: 9
    Dernier message: 09/10/2010, 02h51
  3. Réponses: 6
    Dernier message: 24/03/2010, 19h36
  4. Exécution d'une méthode par un thread
    Par melleb dans le forum C#
    Réponses: 1
    Dernier message: 18/09/2008, 11h21
  5. Exécution d'un Thread dans une méthode statique
    Par barbiche dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 03/05/2007, 14h25

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