zoukankan      html  css  js  c++  java
  • asp.net ashx一般处理程序实现async await异步操作

    目前项目存在页面展示大量图片,效率不高,考虑优化性能,改为ashx+异步下载的方式,废话不说直接贴code:

    using System;
    using System.Web;
    using System.IO;
    using System.Web.SessionState;
    using System.Threading.Tasks;
    
    public class DownLoadS3FileAsync : System.Web.HttpTaskAsyncHandler
    {
    
        public void ProcessRequest(HttpContext context)
        {
            throw new NotImplementedException();
        }
    
        public override async Task ProcessRequestAsync(HttpContext context)
        {
    
            SystemError.CreateErrorLog("开始执行异步啦");
            await Task.Run(() =>
            {
                //调用下载方法
                Download(context);
            });
            SystemError.CreateErrorLog("调用异步完成啦");
        }
    
        public void Download(HttpContext context)
        {
            SystemError.CreateErrorLog("开始下载啦");
            //文件路径
            string key = context.Request.QueryString["key"];
            byte[] bFile = StorageService.Current.Download(key);
    
    
            //输出
            context.Response.Clear();
            context.Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
            context.Response.AddHeader("Content-Length", bFile.Length.ToString());
            context.Response.ContentType = contentType;
            context.Response.OutputStream.Write(bFile, 0, bFile.Length);
            context.Response.Flush();
            context.Response.End();
    
            SystemError.CreateErrorLog("下载结束了!");
        }
    }        
  • 相关阅读:
    蓝桥杯--芯片测试
    蓝桥杯--FJ的字符串
    win8 js 没反应
    winform win8 js checkbox互动
    win8 GridView
    wcf服务引用无实体类对象
    arcgis 接口转换与.Net框架
    win8 链接
    分页控件
    Oracle 分页查询存储过程
  • 原文地址:https://www.cnblogs.com/colder/p/7889736.html
Copyright © 2011-2022 走看看