在你的服務(wù)器端代碼中使用線程與創(chuàng)建異步處理(結(jié)束)
發(fā)表時(shí)間:2023-08-18 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]用定制線程異步處理者為了創(chuàng)建一個(gè)真正的異步處理者, 你必須在BeginProcessRequest響應(yīng)中手工生成額外的線程.成功創(chuàng)建異步處理者有3個(gè)重要的特征. 一 構(gòu)造一個(gè)支持IAsyncResu...
用定制線程異步處理者
為了創(chuàng)建一個(gè)真正的異步處理者, 你必須在BeginProcessRequest響應(yīng)中手工生成額外的線程.成功創(chuàng)建異步處理者有3個(gè)重要的特征. 一 構(gòu)造一個(gè)支持IAsyncResult的類從BeginProcessRequest 返回. 二, 生成個(gè)線程執(zhí)行你的請求異步處理. 三, 通知asp.net 你已經(jīng)結(jié)束了處理請求并且準(zhǔn)備返回響應(yīng)
我會通過構(gòu)造一個(gè)支持IAsyncResult類來構(gòu)建異步處理者. 該類將從調(diào)用BeginProcessRequest返回, 接著我將實(shí)現(xiàn)EndProcessRequest, 在另外的事情中,保存一個(gè)指定請求的狀態(tài)是有用的,我需要用此處理請求. 為了完成IAsyncResult接口,實(shí)現(xiàn)如下:
public interface IAsyncResult
{
public object AsyncState { get; }
public bool CompletedSynchronously { get; }
public bool IsCompleted { get; }
public WaitHandle AsyncWaitHandle { get; }
}
其它的實(shí)現(xiàn)請見代碼