我的文本框有问题。
我有一个代表 GUI 线程的类和一个用于工作线程的类,它执行一些网络工作,然后必须将日志添加到 GUI 线程的文本框中,以便您可以查看后台发生的情况。
但是,我的问题是 GUI 上什么也没发生,只有调用 addLine() 的调试信息在控制台中。
应该添加日志的方法 addLine() 被调用,但似乎 AppendText() 什么都不做。
我很确定这与线程有关,但我不确定如何解决这个问题。
这是代码:
工作线程:
Form1 form = new Form1();
// This method gets called in the worker thread when a new log is available
private void HandleMessage(Log args)
{
// Using an instance of my form and calling the function addLine()
form.addLine(args.Message);
}
图形用户界面线程:
// This method gets called from the worker thread
public void addLine(String line)
{
// Outputting debug information to the console to see if the function gets called, it does get called
Console.WriteLine("addLine called: " + line);
// Trying to append text to the textbox, console is the textbox variable
// This pretty much does nothing from the worker thread
// Accessing it from the GUI thread works just fine
console.AppendText("\r\n" + line);
// Scrolling to the end
console.SelectionStart = console.Text.Length;
console.ScrollToCaret();
}
我已经尝试做一些 Invoke 的东西,但未能正确使用它。
GUI 要么自己锁定,要么继续什么都不做。