public delegate
void AsyncEventHandler();
//我这里自己声明了一个委托,也可以使用WebRequest/WebResponse/SqlConnection来实现这个异步过程
public void Event1(){} public IAsyncResult
BeginAsync3(AsyncCallback callback, object state){
AsyncEventHandler asy = new AsyncEventHandler(Event1);
ViewData["a"]=asy; //这里在方法間传值必须使用辅助存储对象,第一种方法中也是一样 return
asy.BeginInvoke(callback, state); } public void
EndAsync3(IAsyncResult result){//转到异步的Action中 var a =
ViewData["a"] as AsyncEventHandler; a.EndInvoke(result);
Content("完成").ExecuteResult(this.ControllerContext);
}四、第三种异步Action方式:使用AsyncManager.RegisterTask及委托
如果感觉上面使用2个方法才能实现异步
Action有些麻烦的话(也的确是麻烦),可以使用AsyncManager.RegisterTask来调用委托来实现异步调用。