c#交叉线程操作在调用后无效
本文关键字:调用 无效 操作 线程 | 更新日期: 2023-09-27 18:10:27
我有一个跨线程操作的问题。
我有以下方法
private void UpdateLabel(string text)
{
if (this.richTextRxMessage.InvokeRequired)
{
this.Invoke(new Action(() => this.UpdateLabel(text)));
return;
}
else
{
this.richTextRxMessage.AppendText(text);
}
}
我叫它
UpdateLabel(richTextRxMessage.Text + szData);
我不明白为什么我仍然得到这个异常
定义一个像
public delegate void UpdateFormText(string text);
并将方法更改为
private void UpdateLabel(string text)
{
if (!this.richTextRxMessage.InvokeRequired)
{
this.richTextRxMessage.Text=text;
}
else
{
var s = new UpdateFormText(UpdateLabel);
Invoke(s, new object[] { text});
}
}