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

Framework .NET Discussion :

[C#][2.0] Réveiller un thread


Sujet :

Framework .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 285
    Par défaut [C#][2.0] Réveiller un thread
    Bonjour,
    Un truc surement tout bête : je souhaiterais réveiller un thread sur lequel j'ai fait un sleep ...
    J'ai essayé les différentes méthodes de Thread mais soit cela ne fait rien, soit cela ne fait pas ce que je veux ...

    Pour info, mon thread boucle (tant qu'on lui dit de le faire) et pour le faire que de temps en temps, il se met en sleep ...

    Quelqu'un a une idée ?

  2. #2
    Membre éprouvé
    Avatar de debug
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    1 034
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 034
    Par défaut
    Il y a la méthode Resume() qui relance le thread je crois.

  3. #3
    Membre émérite
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Par défaut
    Il me semble que la méthode Resume() ne s'applique que lorsque la méthode Suspend() a été déclenchée.

    Cependant depuis .NET2 la méthode est devenue obsolète dû au problèmes de blocage sur d'autres threads provoqué par la méthode. Par contre à ma connaissance, il n'est pas possible de "réveiller" un thread endormi.

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Ben je ne vois pas l'intérêt de faire un Sleep si c'est pour le réveiller ensuite, d'autant plus que tu dois passer en paramètre la durée du "sommeil". Dans ce cas, pourquoi ne pas définir une durée plus courte ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 285
    Par défaut
    Le thread en question effectue des opérations de synchronisation à des temps réguliers qui sont effectivement paramétrables.

    L'idée (pte fausse) que j'ai mise en place est la suivante :
    Tant que Continuer (paramètre gérée par le gestionnaire)
    ==> Synchro
    ==> Sleep(temps).

    Ce que je voudrais c'est offrir la possibilité de forcer une synchronisation. La seule solution pour le moment que j'ai c'est d'arrêter le thread et de relancer ... pas glop je trouve ...

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Par défaut
    Une idée comme ça serait, plutôt que de faire un sleep d'attendre sur un "event" pendant un temps donné. Si l'évènement est signalé par le thread maître alors il y a synchronisation, sinon on attend le timeout, ça donnerait en gros:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //qqun déclare et initialise un ManualResetEvent et le donne au thread secondaire
    AutoResetEvent MyEvent;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    //dans le thread secondaire
    while(paramètre gérée par le gestionnaire)
    {
       Synchro();
     
       try
       {
           MyEvent.WaitOne(temps);
       }
       catch(TimeOutException)
       {
          //ok on fait rien, on continue
       }   
    }

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

Discussions similaires

  1. Réveiller un thread python par une ligne de commande linux
    Par snyfir dans le forum Général Python
    Réponses: 7
    Dernier message: 12/05/2015, 17h09
  2. [QThread] Réveiller un thread
    Par snyfir dans le forum Multithreading
    Réponses: 1
    Dernier message: 28/10/2010, 11h40
  3. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  4. [Thread][Horloge système]Réveiller un thread selon l'horloge
    Par Magicmax dans le forum Concurrence et multi-thread
    Réponses: 7
    Dernier message: 23/05/2006, 12h48
  5. [Kylix] Pb de Thread !!
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 25/04/2002, 13h53

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