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 :

delegate et thread


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 14
    Par défaut delegate et thread
    Bonjour à toutes et à tous,
    Le code suivant me renvoie une erreur
    Erreur 1 ligne14 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'WindowsFormsApplication1.Form1.listBox1'
    ... je ne trouve pas le problème

    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
     
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public delegate void mydelegate(string message);
     
     
            public Form1(){
                InitializeComponent();
            }
     
            private void MiseAJourAff(string a){
                Form1.listBox1.Items.Add(a);
            }
     
            public void ThreadProc(){
                for (int i = 0; i < 10; i++)
                {
                    //Console.WriteLine("ThreadProc: {0}", i);
                    this.Invoke(new mydelegate(MiseAJourAff), "ThreadProc: {0}" + i);
                    Thread.Sleep(100);
                }
            }
     
            public void button1_Click(object sender, EventArgs e){
    	    //Console.WriteLine("Main thread: Start a second thread.");            
                MiseAJourAff("Main thread: Start a second thread.");//Console.WriteLine("Main thread: Start a second thread.");
     
                Thread t = new Thread(new ThreadStart(ThreadProc));
     
                t.Start();
     
                for (int i = 0; i < 4; i++){
                    Console.WriteLine("Main thread: Do some work.");
                    Thread.Sleep(10);
     
                    t.Join();
                }
     
                Console.WriteLine("Main thread: Call Join(), to wait until ThreadProc ends.");
                t.Join();
                Console.WriteLine("Main thread: ThreadProc.Join has returned.  Press Enter to end program.");
                Console.ReadLine();
            }
        }        
     
    }
    Si l'un de vous pouvais m'aider
    Ce code marche parfaitement lorsque j'affiche la console
    mais ça coince dès que je veux afficher le message dans ma form
    j'ai créer un delegate mais le code fonctionne pas

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 44
    Par défaut
    Il faut que tu enlèves le Form1 au début de ta ligne, pour que ça donne ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    listBox1.Items.Add(a);
    ou ça, selon les préférences

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.listBox1.Items.Add(a);
    cordialement

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 14
    Par défaut
    Merci alexandre

    En effet cela marche beaucoup mieux
    par contre j'ai pas mal de souci de synchronisation .... et de mise à jour de l'affichage de mon textbox lors de l’exécution du programme
    Je continue ma recherche

Discussions similaires

  1. Delegate et Thread
    Par CeluiQuiCode dans le forum C#
    Réponses: 10
    Dernier message: 15/05/2013, 11h12
  2. Croisements de threads / Fonctionnement des "delegate"
    Par Fabllot dans le forum C++/CLI
    Réponses: 3
    Dernier message: 18/07/2007, 12h18
  3. [C#][Thread][Invoke] petit problème de delegate
    Par clinic dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 22/06/2007, 11h38
  4. [C# 2.0][Form]Comment utiliser les Delegates & Threading
    Par Tips dans le forum Windows Forms
    Réponses: 8
    Dernier message: 08/01/2006, 14h22
  5. [C#]Thread, event/delegate et Form
    Par doccpu dans le forum Windows Forms
    Réponses: 28
    Dernier message: 01/08/2005, 18h35

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