我正在创建一个基于 Windows 的应用程序,它从服务器下载数据。我正在使用在不同类上创建的后台线程来执行这些下载操作。我想在富文本框(即主线程)上不断显示下载状态。但我无法做到这一点,使跨线程操作无效. 请帮我解决这个问题。
Form1.cs 上的方法
public void UpdateRichText(string Text)
{
SetRichText(Text);
}
public delegate void SetRichTextTextDelegate(string text);
public void SetRichText(object number)
{
if (InvokeRequired)
{
this.BeginInvoke(new SetRichTextTextDelegate(SetRichText),text);
return;
}
richTextBox1.Text += number.ToString() + "\n";
}
private void button3_Click_1(object sender, EventArgs e)
{
demo d = new demo();
d.display();
}
demo.cs 上的方法
Form1 f = new Form1();
public void display()
{
Thread t = new Thread(new ThreadStart(call));
t.Start();
}
public void call()
{
//when i call this method every time if(InvokeRequired) is false.
f.UpdateRichText("Called from Thread");
}