ASP.NET 在web page上執行非同步的任務。

Posted by on | |
ASP.NET 在web page上執行非同步的任務。

有些重點要注意:
(http://msdn.microsoft.com/zh-tw/library/system.web.ui.page.executeregisteredasynctasks(VS.80).aspx)
在頁面處理過程中,針對不是非同步頁面叫用任何已註冊的非同步工作 (如果有的話) 時,
會自動呼叫 ExecuteRegisteredAsyncTasks 方法。
在 PreRenderComplete 事件之前,發生對 ExecuteRegisteredAsyncTasks 的自動呼叫。
除了對這個方法的自動呼叫以外,您也可以針對所要叫用的工作呼叫 ExecuteRegisteredAsyncTasks 方法。
請注意,即使可以多次呼叫 ExecuteRegisteredAsyncTasks,但非同步工作只能執行一次。

每次呼叫 ExecuteRegisteredAsyncTasks 方法時,AsyncTimeout 屬性會重設。
叫用 ExecuteRegisteredAsyncTasks 方法前 AsyncTimeout 的最後一個值為優先。

步驟:
1.在aspx頁面上要加入 Async="true"。
2.建立一個PageAsyncTask。
3.在page上註冊,RegisterAsyncTask。
4.如上重點所述,在 PreRenderComplete 事件之前,會自動呼叫註冊的PageAsyncTask。

程式碼:
MyObject tmpObj = new MyObject();
PageAsyncTask tmpTask = new PageAsyncTask(tmpObj.OnBegin,
           tmpObj.OnEnd,
           tmpObj.OnTimeout,
           null
       );
this.Page.RegisterAsyncTask(tmpTask);

0 意見: