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);
         }

  • 相关阅读:
    kubernetes获取Pod内容器信息
    etcd空间配额2G限制优化
    kubernetes集群之GC处理
    kubernetes之statefulset控制器介绍
    基于MySQL Binlog的Elasticsearch数据同步实践
    Nacos
    Python最佳工程实践,建立一个完美的工程项目
    图数据库的内部结构 (NEO4j)
    5个用/不用GraphQL的理由
    Neo4J 查找两节点之间的路径
  • 原文地址:https://www.cnblogs.com/tiantianle/p/9247126.html
Copyright © 2011-2022 走看看