IAsyncResult實(shí)現(xiàn)
異步返回處理對(duì)象實(shí)現(xiàn)也很簡(jiǎn)單,實(shí)現(xiàn)一個(gè)Execute方法由隊(duì)列執(zhí)行,執(zhí)行完成后通過(guò)callBack方法來(lái)通知處理完成.
public class AspxAsyncResult : IAsyncResult{
bool m_IsCompleted = false;
private IHttpHandler mHandler;
private HttpContext mContext;
private AsyncCallback m_Callback;
public AspxAsyncResult(HttpContext context, IHttpHandler handler, AsyncCallback cb)
{
mHandler = handler;
mContext = context;
m_Callback = cb;
}
#region IAsyncResult 成員
public object AsyncState
{
get { return null; }
}
public WaitHandle AsyncWaitHandle
{
get { return null; }
}
public bool CompletedSynchronously
{
get { return false; }
}
public bool IsCompleted
{
get { return m_IsCompleted; }
}
#endregion
public void Execute()
{
try
{
mHandler.ProcessRequest(mContext);
}
catch
{
}
finally
{
try
{
if (m_Callback != null)
m_Callback(this);
}
catch
{
}
m_IsCompleted = true;
}
}
}
本文導(dǎo)航
- 第1頁(yè): 首頁(yè)
- 第2頁(yè): IAsyncResult實(shí)現(xiàn)
- 第3頁(yè): 測(cè)試效果和總結(jié)