我正在使用异步套接字操作,当客户端收到消息时,它将使用下面的代码调用方法并执行Methodinvoker:

private void AddText(string message)
        {
            MethodInvoker mi = new MethodInvoker(delegate
            {
                textBox1.Text += message;
            });
            this.Invoke(mi);
        }


我不明白为什么要使用methodinvoker。
最好使用它而不是声明和调用没有参数的void方法?一定有一个很好的理由。

最佳答案

显然,您的方法是从另一个线程然后从主线程调用的。

Invoke


  
    在拥有控件的基础窗口句柄的线程上执行指定的委托。
  


您应该始终与主线程上的用户控件进行交互。 Invoke方法将委托重新发布回应用程序的主线程。

10-07 13:17