在C#中,BeginInvoke
方法用于在另一个线程上异步执行一个方法。这个方法通常用于在UI线程上执行长时间运行的操作,以避免阻塞UI。BeginInvoke
方法需要两个参数:
MyMethod
的方法,你可以使用Action
或Func
委托。public void MyMethod()
{
// Your code here
}
// Usage
BeginInvoke(new Action(MyMethod));
或者
public int MyMethod(int param)
{
// Your code here
return result;
}
// Usage
BeginInvoke(new Func<int, int>(MyMethod), paramValue);
public void AsyncCallback(IAsyncResult result)
{
// Your code here to handle the completion of the asynchronous operation
}
// Usage
BeginInvoke(new Action(MyMethod), null, AsyncCallback);
或者
public int AsyncCallback(IAsyncResult result)
{
// Your code here to handle the completion of the asynchronous operation
return resultValue;
}
// Usage
BeginInvoke(new Func<int, int>(MyMethod), paramValue, AsyncCallback);
请注意,BeginInvoke
方法属于Control
类(例如,Button
、TextBox
等),因此你需要在一个控件上调用它。如果你需要在非控件类中使用BeginInvoke
,你可以创建一个Control
实例(例如,new Control()
),然后在该实例上调用BeginInvoke
。