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 :

Problème d'affichage lors de l’exécution d'un ThreadPool.


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 72
    Points : 107
    Points
    107
    Par défaut Problème d'affichage lors de l’exécution d'un ThreadPool.
    Bonjour à tous,
    Je ne m'explique pas pourquoi, je ne peux pas afficher dans la méthode "Etape1" un message dans textBox1,
    j'ai un plantage et aucun message d'erreur.

    En vous remerciant pour vos explications et votre aide
    Cordialement.

    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
     
           private void button1_Click(object sender, EventArgs e)
            {
                AutoResetEvent autoResetEvent = new AutoResetEvent(false);
                ThreadPool.QueueUserWorkItem(new WaitCallback(Etape1), autoResetEvent); 
                autoResetEvent.WaitOne();
                textBox1.AppendText("Terminé !!!");
            }
     
     
            public void Etape1(object stateInfo)
            {
                //plantage lors de l'appel de cet Invoke 
                Invoke(new Action(() => textBox1.AppendText("Départ de travail du 1" + "\n")));
     
     
                //Simulate time spent working.
                Thread.Sleep(new Random().Next(1000, 1500));
     
                ((AutoResetEvent)stateInfo).Set();
            }

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    Il n'y a pas de plantage mais blocage du thread principal :
    autoResetEvent.WaitOne() bloque le thread principal et attend un signal de ton second thread. Le second thread effectue un Invoke sur le thread principal qui est bloqué...

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 72
    Points : 107
    Points
    107
    Par défaut
    Par contre en mode console ça fonctionne bien ! Pourquoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Console.WriteLine("Départ de travail du 1");
    Merci bien ebastien !
    Cordialement.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    La console est juste une sortie standard. Comme dans un fichier en mode partagé, tu peux avoir plusieurs thread qui écrivent dedans (mais ça peut être un peu le bordel ...)

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 72
    Points : 107
    Points
    107
    Par défaut
    Merci ebastien pour toutes ces explications.

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

Discussions similaires

  1. Problème d'affichage lors d'export PDF
    Par Cj_Dal dans le forum iReport
    Réponses: 0
    Dernier message: 05/11/2010, 16h35
  2. [Dev-Pascal] [GNU Pascal] Problème d'affichage lors de l'exécution d'un programme
    Par Mourad III dans le forum Autres IDE
    Réponses: 2
    Dernier message: 03/11/2010, 02h19
  3. [DisplayTag] Problème d'affichage lors de l'export
    Par ABDOU1919 dans le forum Taglibs
    Réponses: 0
    Dernier message: 30/04/2010, 19h53
  4. Problème d'affichage lors d'une requête SNMP
    Par Guy025 dans le forum Réseau
    Réponses: 6
    Dernier message: 21/08/2008, 11h34
  5. Problème d'affichage lors du redimensionnement
    Par sidi.elmoctar dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 12/04/2006, 08h44

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