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 :

Auto/ManualResetEvent Probleme avec WaitHandle.WaitAll


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut Auto/ManualResetEvent Probleme avec WaitHandle.WaitAll
    Bonjour,


    dans mon projet j'ai besoin de faire une gestion des evenement en utilisant le Auto/ManualResetEvent

    j'ai recupere un exemple depuis internet ici
    dont je suis en phase de l'adapter à ma solution

    code extriate
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    using System;
    using System.Threading;
     
    class Test
    {
        static void Main()
        {
            ManualResetEvent[] events = new ManualResetEvent[10];
            for (int i=0; i < events.Length; i++)
            {
                events[i] = new ManualResetEvent(false);
                Runner r = new Runner(events[i], i);
                new Thread(new ThreadStart(r.Run)).Start();
            }
     
            int index = WaitHandle.WaitAny(events);
     
            Console.WriteLine ("***** The winner is {0} *****", 
                               index);
     
            WaitHandle.WaitAll(events);
            Console.WriteLine ("All finished!");
        }
    }
     
    class Runner
    {
        static readonly object rngLock = new object();
        static Random rng = new Random();
     
        ManualResetEvent ev;
        int id;
     
        internal Runner (ManualResetEvent ev, int id)
        {
            this.ev = ev;
            this.id = id;
        }
     
        internal void Run()
        {
            for (int i=0; i < 10; i++)
            {
                int sleepTime;
                // Not sure about the thread safety of Random...
                lock (rngLock)
                {
                    sleepTime = rng.Next(2000);
                }
                Thread.Sleep(sleepTime);
                Console.WriteLine ("Runner {0} at stage {1}",
                                   id, i);
            }
            ev.Set();
        }
    }
    lorsque je teste ce code j'ai le probleme suivant sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      WaitHandle.WaitAll(events);
    EXCEPTION:
    WaitAll pour plusieurs handles sur un thread STA n'est pas pris en charge.
    MERCI;

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    <STAThread> est un attribut (peut etre celui par défaut) qui se place devant la méthode de démarrage
    essaye avec MTAThread ou autre
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    bonjour,
    desole pour le retard que j'ai met pour vous repondre.
    voila j'ai trouve une autre solution pour repondre a ma besoin ,et ça marche bien ,merci bcp.


    Merci Pol63

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

Discussions similaires

  1. probleme avec numero auto
    Par debutantasp dans le forum ASP
    Réponses: 4
    Dernier message: 28/03/2008, 08h20
  2. [BO 5.1.8]Problemes avec Numéro autos sur Mysql
    Par zalalus dans le forum Designer
    Réponses: 10
    Dernier message: 17/10/2007, 17h41
  3. probleme avec une auto-incremente
    Par tchimou dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/05/2007, 14h28
  4. [JDK1.5]probleme avec l'auto-unboxing
    Par Grimaud dans le forum NetBeans
    Réponses: 4
    Dernier message: 11/04/2007, 10h10
  5. Réponses: 1
    Dernier message: 25/09/2006, 10h18

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