在你的服务器端代码中使用线程和创建异步处理(结束)

用定制线程异步处理者

为了创建一个真正的异步处理者 , 你必须在 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; }

}

其它的实现请见代码

关于流程图,见以下两图:

Published At
Categories with Web编程
Tagged with
comments powered by Disqus