只需要像
这样的常规方法void DosomethingLong()
以异步方式调用它的最佳方法是什么?
答案 0 :(得分:6)
标准方法是创建方法的委托:
Action myMethod = DosomethingLong;
IAsyncResult result = myMethod.BeginInvoke(..., null);
// ...
myMethod.EndInvoke(result);
您可以使用其他方法;使用Thread,使用BackgroundWorker等,具体取决于您的具体要求。
答案 1 :(得分:0)
如果使用.NET 4,则可以
var yourLongRunningTask = Task.Factory.StartNew(DosomethingLong);
// some time later
Task.WaitAll(yourLongRunningTask);