有幾個重點步驟,如下:
- 建立一個真的要執行任務的function - ex. myAction
- 建立一個AsyncTaskDelegate物件 - ex. ATDObj
- 建立3個非同步必要的function - onBegin,onEnd,onTimeout
- 在web page註冊非同步的任務 - ex. myReg
所以執行順序為:myReg -> onBegin -> ATDObj -> myAction
底下的範本Code:
public class DATA
{
public string a;
public string b;
}
}
private void myAction(DATA inDATA)
{
//do something
}
}
private delegate void AsyncTaskDelegate(DATA inDATA);
public IAsyncResult onBegin(object sender, EventArgs e, AsyncCallback cb, object state)
{
AsyncTaskDelegate _dlgt = new AsyncTaskDelegate(myAction);
return _dlgt.BeginInvoke((DATA)state, cb, state);
}
public void onEnd(IAsyncResult ar)
{}
public void onTimeout(IAsyncResult ar)
{}
private void Asnyc_NotifyGuest(string inGuestID)
{
DATA tmpData = new DATA();
tmpData .a= "xxxx";
tmpData .b= "yyyy";
this.Page.RegisterAsyncTask(new PageAsyncTask(this.onBegin,
this.onEnd,
this.onTimeout,
tmpData ,
true
));
}
0 意見:
張貼留言