在C#中,MethodInvoker是一个委托类型,用于调用没有参数和无返回值的方法。使用MethodInvoker的一种常见方式是在Windows Forms应用程序中调用UI线程上的方法。
以下是使用MethodInvoker的示例:
using System;
using System.Windows.Forms;
public class Program
{
public static void Main()
{
// 创建一个Form实例
Form form = new Form();
// 创建一个Button实例
Button button = new Button();
button.Text = "Click me";
button.Click += Button_Click;
// 将Button添加到Form
form.Controls.Add(button);
// 显示Form
Application.Run(form);
}
private static void Button_Click(object sender, EventArgs e)
{
// 创建一个MethodInvoker实例,用于调用ShowMessage方法
MethodInvoker methodInvoker = new MethodInvoker(ShowMessage);
// 在UI线程上调用ShowMessage方法
button.Invoke(methodInvoker);
}
private static void ShowMessage()
{
MessageBox.Show("Button clicked!");
}
}
在上面的示例中,当用户点击按钮时,Button_Click方法将创建一个MethodInvoker实例,并使用Invoke方法在UI线程上调用ShowMessage方法。这样做是因为UI控件只能在UI线程上访问和更新。
请注意,上述示例中的button是一个静态变量,以便在Button_Click方法中访问它。您可以根据您的代码结构和需求进行相应的修改。