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);

我不明白为什么我仍然得到这个异常

c#交叉线程操作在调用后无效

定义一个像

  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});
    }
}
相关文章: