在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方法中訪問它。您可以根據您的代碼結構和需求進行相應的修改。