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来调用委托来实现异步调用。