1
Я хотел бы иметь асинхронное действие в базовом контроле MonoRail.Замок MonoRail async action
Я прочитал документацию об асинхронных действиях http://docs.castleproject.org/Default.aspx?Page=Controllers&NS=MonoRail&AspxAutoDetectCookieSupport=1#Asynchronous_Actions_1
Так вот что я сделал:
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
}
Но что мне нужно делать, когда IsPost ложно?
Вы можете просто вернуть заполненную IAsyncResult (с нулевым AsyncResult) аналогично тому, что описано в другой SO вопрос? (http://stackoverflow.com/questions/5037422/how-to-create-an-iasyncresult-that-immediately-completes) –
Спасибо, это, вероятно, сработает. – ZxCvBnM
Рад видеть, что это поможет вам, я сделаю это в ответ, чтобы люди могли ясно видеть это –