在C#中,BeginInvoke
方法用于在另一個線程上異步執(zhí)行一個方法。這個方法通常用于在UI線程上執(zhí)行長時間運行的操作,以避免阻塞UI。BeginInvoke
方法需要兩個參數(shù):
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
等),因此你需要在一個控件上調(diào)用它。如果你需要在非控件類中使用BeginInvoke
,你可以創(chuàng)建一個Control
實例(例如,new Control()
),然后在該實例上調(diào)用BeginInvoke
。