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

C# 为什么我应该使用methodinvoker而不是声明一个void方法并调用它?,c#,C#,我使用的是异步套接字操作,当客户端接收到消息时,它使用下面的代码调用一个方法并执行Methodinvoker: private void AddText(string message) { MethodInvoker mi = new MethodInvoker(delegate { textBox1.Text += message; }); this.

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

private void AddText(string message)
        {
            MethodInvoker mi = new MethodInvoker(delegate
            {
                textBox1.Text += message;
            });
            this.Invoke(mi);
        }
我不明白为什么要使用methodinvoker。
最好使用它,而不是声明和调用没有参数的void方法?一定有很好的理由。

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

:

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


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

声明void方法没有好处,您需要委托类型。在.NET framework中已经可用的没有问题。包括行动。