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 に答える