//向TextBox中添加文本
delegate void ShowMessageDelegate(TextBox tb, string msg);
private void ShowMessage(TextBox tb, string msg)
{
if (tb.InvokeRequired)
{
//ShowMessageDelegate myDelegate = ShowMessage; //方法1
ShowMessageDelegate myDelegate = new ShowMessageDelegate(ShowMessage); //方法2
tb.Invoke(myDelegate, new object[] { tb, msg });
}
else
{
tb.Text += msg + "\r\n";
}
}
进程:
private void ReceiveMessage()
{
。。。。。。。。。。。。。。。
ShowMessage(textBox1,
string.Format("{0} [{1}]", message, str));
}
本文介绍了一种在Windows Forms应用程序中实现跨线程更新UI的方法。通过使用委托和Invoke方法,确保了UI组件(如TextBox)在非主线程中的安全更新。此方法避免了因直接从非UI线程修改UI元素而引发的应用崩溃。
4241

被折叠的 条评论
为什么被折叠?



