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 :

[C#] Comment d�finir et int�grer un TimeOut sur un WaitHandle ?


Sujet :

C#

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm� Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Par d�faut [C#] Comment d�finir et int�grer un TimeOut sur un WaitHandle ?
    Bonjour � tous !!

    De retour de vacances je retrouve mes probl�mes de codage � croire que j'aime ��

    Je vais essayer de m'expliquer :
    J'ai un thread qui fonctionne avec des �v�nements (type AutoResetEvent et ManualResetEvent) et j'attend ces �v�nements avec un le souci que je rencontre c'est que quand un �v�nement n'arrive pas assez vite, je voudrais effectuer un traitement. Une sorte de TimeOut pour un WaitHandle. J'ai vu qu'il existait une CONSTANTE WaitHandle.TimeOut mais je ne sais pas comment d�finir la valeur de TimeOut et je ne sais pas comment l'int�grer dans mon code. Donc voila mon code :

    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
    16
     
     while (_answerState == threadState.Run)
    {
        switch (WaitHandle.WaitAny(new WaitHandle[] { _stopEvent,
     _answerReceived }))
        {
            case 0: Console.WriteLine("answer c'est arreté");
               _answerState = threadState.Stop;
               break;
            case 1:
               // On récupère l'instruction à traiter dans la pile
               answer = (string)_answerFIFO.Dequeue();
               answerType = answer.ToCharArray()[1];
               break;
         }
    }
    En esp�rant avoir �t� clair dans mes explications et en attente de vos r�ponses
    Merci d'avance

  2. #2
    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
    Salut,

    Tu as une surcharge de la fonction WaitAny qui prend en argument un TimeSpan correspondant au temps max d'attente d'un des �venements. Voir ici.

  3. #3
    Membre confirm� Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Par d�faut
    merci pour ta r�ponse.
    J'ai regard� l'adresse que tu m'as donn�e mais je ne comprend pas � quoi sert le exitContext. Aurais-tu des infos au passage?

  4. #4
    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
    Je ne maitrise pas trop ces histoires de contexte en .Net, mais en gros tu peux poser des attributs sur tes objets qui vont d�finir un contexte d'ex�cution. Par exemple tu as un attribut System.Runtime.Remoting.Contexts.SynchronizationAttribute qui sert � indiquer que tous les appels aux m�thodes de ton objets doivent �tre synchronis�s (pas plus d'un thread en m�me temps dans un m�me objet) , tu as la un contexte synchronis�.

    J'imagine (attention je ne suis pas sur) que ce exitContext permet de lib�rer le lock pendant le waitAny afin que d'autres threads puissent l'obtenir, puis a la fin du waitAny tu le reprends. Bref une histoire de ce genre.

    Toujours est-il que si tu n'utilises pas ces attributs de contexte, je pense que peut importe la valeur de exitContext ton code fonctionnera (autant mettre false par d�faut, c'est surement le plus prudent).

    Apres une petite recherche, un article qui devrait �tre int�ressant sur ces histoires de contexte : http://msdn.microsoft.com/msdnmag/is...P/default.aspx

  5. #5
    Membre confirm� Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Par d�faut
    merci encore une fois pour vos r�ponses vraiment rapides
    developpez.com ca change pas c'est toujours une mine d'information !!
    je le conseille a tous ceux que je connais et qui programment, j'en ram�ne des clients

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 09/05/2007, 15h58
  2. Comment int�grer des onglets, sur un menu dynamique Javascript
    Par kervano dans le forum Mise en page CSS
    R�ponses: 7
    Dernier message: 04/04/2007, 13h14
  3. Comment d�finir un focus sur un champ (ex:login) ?
    Par vandeyy dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 30/01/2007, 11h05
  4. [VB6] Comment g�rer un Timeout sur l'api HttpSendRequest
    Par marsup54 dans le forum VB 6 et ant�rieur
    R�ponses: 4
    Dernier message: 15/06/2006, 10h15
  5. Comment d�finir un timeout sur une socket PHP ?
    Par N3odyme dans le forum Langage
    R�ponses: 7
    Dernier message: 07/05/2006, 23h04

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