Ecrire dans un RichTextBox depuis un thread
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:
Code:
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;
}
} |
Et voilà le snippet de ma form principale:
Code:
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();
} |
Merci d'avance de votre aide.
@++