Asynchronous 城堡单轨异步动作

Asynchronous 城堡单轨异步动作,asynchronous,action,castle-monorail,Asynchronous,Action,Castle Monorail,我希望在单轨basecontroller中有一个异步操作 我阅读了有关异步操作的文档 这就是我所做的: public IAsyncResult BeginUploadTags(HttpPostedFile xmlFile, Boolean doUpload) { if(IsPost) { IAsyncResult iAsyncResult = new AsyncDelegate(upload).BeginInvoke(queryResult, doUpload,

我希望在单轨basecontroller中有一个异步操作

我阅读了有关异步操作的文档

这就是我所做的:

public IAsyncResult BeginUploadTags(HttpPostedFile xmlFile, Boolean doUpload)
{
  if(IsPost)
  {
            IAsyncResult iAsyncResult = new AsyncDelegate(upload).BeginInvoke(queryResult, doUpload, ControllerContext.Async.Callback, ControllerContext.Async.State);
            return iAsyncResult;
   }
   // TODO
   // if IsPost is false do nothing but return a IAsyncResult object
}

public void EndUploadTags()
{

}

private delegate void AsyncDelegate(List<String> queryResult, Boolean doUpload);
private void upload(List<String> queryResult, Boolean doUpload)
{
   // do upload stuff
}
public IAsyncResult BeginUploadTags(HttpPostedFile xmlFile,布尔双pload)
{
如果(IsPost)
{
IAsyncResult IAsyncResult=新建AsyncDelegate(upload).BeginInvoke(queryResult,doUpload,ControllerContext.Async.Callback,ControllerContext.Async.State);
返回iAsyncResult;
}
//待办事项
//如果IsPost为false,则只返回一个IAsyncResult对象
}
public void EndUploadTags()
{
}
私有委托void AsyncDelegate(列表queryResult,布尔双pload);
私有无效上载(列表查询结果,布尔双加载)
{
//上传东西吗
}

但是当IsPost为false时,我需要做什么呢?

您需要返回一个完整的IAsyncResult(带有一个空的AsyncResult值)


您可以创建一个类似于

的完整结果,您可以简单地返回一个类似于另一个SO问题中描述的完整IAsyncResult(带有空AsyncResult)吗?()谢谢,这可能行得通。很高兴看到这对你有帮助,我会把它做成一个答案,这样人们也能看得清楚