C# 为什么我应该使用methodinvoker而不是声明一个void方法并调用它?
我使用的是异步套接字操作,当客户端接收到消息时,它使用下面的代码调用一个方法并执行Methodinvoker:C# 为什么我应该使用methodinvoker而不是声明一个void方法并调用它?,c#,C#,我使用的是异步套接字操作,当客户端接收到消息时,它使用下面的代码调用一个方法并执行Methodinvoker: private void AddText(string message) { MethodInvoker mi = new MethodInvoker(delegate { textBox1.Text += message; }); this.
private void AddText(string message)
{
MethodInvoker mi = new MethodInvoker(delegate
{
textBox1.Text += message;
});
this.Invoke(mi);
}
我不明白为什么要使用methodinvoker。
最好使用它,而不是声明和调用没有参数的void方法?一定有很好的理由。显然,您的方法是从另一个线程调用的,然后是从主线程调用的 : 在拥有控件底层窗口句柄的线程上执行指定的委托
您应该始终与主线程上的用户控件交互。Invoke方法将委托发回应用程序的主线程。声明void方法没有好处,您需要委托类型。在.NET framework中已经可用的没有问题。包括行动。