Bonjour
Voilà mon problème, suite à la lecture de la FAQ (http://faqcsharp.developpez.com/?pag...sc#form_thread), je remarque qu'il est possible d'écrire dans un RichTextBox depuis un thread lancé. Or, j'ai essayé d'implémenter cela et malgré tout, rien ne s'écrit.
Voici le code concerné de ma classe servant de thread:
Et voilà le snippet de ma form principale:
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 public class DirWatcher { private Log log; private String message = ""; private RichTextBox richTextBox; public void ProcessCreatedFile() { while (true) { //On fait quelque chose d'utile et on met à jour la propriété Message } } private void WriteLine() { log.WriteLine(Message); if (this.richTextBox != null) { if (richTextBox.InvokeRequired) { richTextBox.Invoke(new TextBoxInvokeHandler(FonctionTextBox)); } else { FonctionTextBox(); } } } private delegate void TextBoxInvokeHandler(); private void FonctionTextBox() { this.richTextBox.AppendText(Message+"\n"); } public String Message { get { return this.message; } set { this.message = value; } }
Merci d'avance de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 private void button1_Click(object sender, EventArgs e) { this.button2.Enabled = true; this.button1.Enabled = false; threadStart = new ThreadStart(watcher.ProcessCreatedFile); thread = new Thread(threadStart); log.WriteLine("Starting thread"); this.richTextBox1.AppendText("Starting thread\n"); thread.Start(); }
@++








Répondre avec citation
Partager