为什么我应该使用methodinvoker而不是声明一个void方法并调用它?

时间:2013-03-31 21:50:32

标签: c#

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

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

我不明白为什么使用methodinvoker。 最好使用它而不是声明和调用没有参数的void方法?必须有充分的理由。

1 个答案:

答案 0 :(得分:1)

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

Invoke

  
    

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

  

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