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

来源:互联网 发布:仙界网络直播间笔趣阁 编辑:程序博客网 时间:2024/05/16 13:53
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

用定制线程异步处理者

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

}

其它的实现请见代码

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

 

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击