2

我有跨线程操作的问题。

我有以下方法

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

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

4

1 回答 1

2

定义一个像

  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});
    }
}
于 2013-04-22T22:36:26.383 回答