明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

在你的服務(wù)器端代碼中使用線程與創(chuàng)建異步處理(結(jié)束)

[摘要]用定制線程異步處理者為了創(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)請見代碼