c#:从多个线程更新文本框中的控制台
本文关键字:文本 控制台 更新 线程 | 更新日期: 2023-09-27 18:06:45
在我的应用程序中,我试图将控制台的输出显示为win forms文本框。这是工作只要我在gui线程。但是当我从另一个线程写入控制台时,我得到一个InvalidOperationException。这是我使用的代码:
在形式:public partial class Form1 : Form
{
Crawler crawler = new Crawler();
Log log = null;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
log = new Log(tbLogOutput);
Console.SetOut(log);
}
}
}
In the text:
class Log : TextWriter
{
TextBox _output = null;
public Log(TextBox output)
{
_output = output;
}
public override void Write(char value)
{
base.Write(value);
_output.AppendText(value.ToString()); // When character data is written, append it to the text box.
}
public override Encoding Encoding
{
get { return System.Text.Encoding.UTF8; }
}
}
可能值得在Google上输入"Update UI from thread c#"
如何从c#中的另一个线程更新GUI ?