zoukankan      html  css  js  c++  java
  • 异步处理程序

    post方式请求一个异步处理程序获得json数据时,对于请求方来说,是需要等待整个handler执行完成的,而非仅仅开始一个异步的时间。

       /// <summary>
        /// AsyncHandler 的摘要说明
        ///  异步处理程序基类
        /// </summary>
        public abstract class AsyncHandlerBase : IHttpAsyncHandler
        {
            readonly Action<HttpContext> _processRequest;
            public AsyncHandlerBase()
            {
                _processRequest = ProcessRequest;
            }
    
            public abstract void ProcessRequest(HttpContext context);
            
            public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData)
            {
                context.Response.Write("异步开始了!");
                return _processRequest.BeginInvoke(context, cb, context);
            }
    
            public void EndProcessRequest(IAsyncResult result)
            {
                _processRequest.EndInvoke(result);
                HttpContext context = result.AsyncState as HttpContext;
                context.Response.Write("到回调了!");
                
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
        /// <summary>
        /// MyAsyncHandler 的摘要说明
        /// </summary>
        public class MyAsyncHandler : AsyncHandlerBase
        {
            public override void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "application/json";
                context.Response.Write(""mess":"即将休眠5秒"");
                System.Threading.Thread.Sleep(5000);
                context.Response.Write(""mess":"我以苏醒"");
            }
        }
         public static void PostTest()
         {
             string reqUrl = "http://localhost:51233/MyAsyncHandler.ashx";
             string result = PostJsonDataToServer(reqUrl, "", HttpWebRequestMethod.GET, 6000);
             Console.WriteLine(result);
         }

  • 相关阅读:
    Django-(二).模型层
    firewalld
    2.Python爬虫入门二之爬虫基础了解
    1.Python爬虫入门一之综述
    wxpython 安装教程
    使用Pycharm 安装三方库
    Selenium中的webdriver定位元素失败的常见原因
    Linux 配置selenium + webdriver 环境
    类属性、实例属性
    linux 安装mysql数据库
  • 原文地址:https://www.cnblogs.com/tiantianle/p/9247126.html
Copyright © 2011-2022 走看看