2009-11-01 24 views
0

在ASP.NET中,您可以按以下運行的異步任務:但是在ASP.NET異步頁面中,是否可以執行2個連續的異步任務?

PageAsyncTask task1 = 
new PageAsyncTask(BeginAsyncOperation1, EndAsyncOperation1, TimeoutAsyncOperation1, state); 
RegisterAsyncTask(task1); 

PageAsyncTask task2 = 
new PageAsyncTask(BeginAsyncOperation2, EndAsyncOperation2, TimeoutAsyncOperation2, state); 
RegisterAsyncTask(task2); 

,假設你需要確保TASK2執行之前完成TASK1。這可能嗎?

我的理解是這些任務可以並行運行。

回答

5

最簡單的解決方案是在「EndAsyncOperation1」處理程序中啓動task2。

2

如果task1需要在task2之前完成,則可以考慮創建第三個操作,將同步調用封裝到BeginAsyncOperation1和BeginAsyncOperation2並異步運行該操作。第二項任務的工作將在第一項任務完成之前不會開始。

0

該解決方案位於PageAsyncTask構造函數中。將「parallel」的布爾標誌設置爲false,並且它們將按順序運行。