用定制线程异步处理者
为了创建一个真正的异步处理者, 你必须在BeginProcessRequest响应中手工生成额外的线程.成功创建异步处理者有3个重要的特征. 一 构造一个支持IAsyncResult的类从BeginProcessRequest 返回. 二, 生成个线程执行你的请求异步处理. 三, 通知asp.net 你已经结束了处理请求并且准备返回响应
我会通过构造一个支持IAsyncResult类来构建异步处理者. 该类将从调用BeginProcessRequest返回, 接着我将实现EndProcessRequest, 在另外的事情中,保存一个指定请求的状态是有用的,我需要用此处理请求. 为了完成IAsyncResult接口,实现如下:
public interface IAsyncResult
{
public object AsyncState { get; }
public bool CompletedSynchronously { get; }
public bool IsCompleted { get; }
public WaitHandle AsyncWaitHandle { get; }
}
其它的实现请见代码
关于流程图,见以下两图: