2012-10-24 7 views
1

MonoRail basecontroller에서 비동기 작업을하고 싶습니다. 캐슬 MonoRail 비동기 작업

나는 그래서 내가 무슨 짓을 비동기 작업을 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이 거짓 인 경우 어떻게해야합니까?

+0

에 하나의 SO 질문 유사한 완성 된 결과를 만들 수 있습니까? (http://stackoverflow.com/questions/5037422/how-to-create-an-iasyncresult-that-immediately-completes) –

+0

감사합니다. 아마도 작동 할 것입니다. – ZxCvBnM

+0

다행이 도움이된다는 것을 알았 기 때문에 답변을 작성하여 사람들이 명확하게 볼 수있게했습니다. –

답변

0

완성 된 IAsyncResult (null AsyncResult 값 사용)를 반환해야합니다.

당신은 다른에 설명 된 것과 유사한 단순히 (널 AsyncResult로) 완성 된 IAsyncResult를 반환 할 수 this SO question