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, , bFile.Length);
context.Response.Flush();
context.Response.End(); SystemError.CreateErrorLog("下载结束了!");
}
}
asp.net ashx一般处理程序实现async await异步操作的更多相关文章
- asp.net ashx 一般处理程序 使用async await异步直接 copy可用哦
以前一直很懒 碰到ashx要用await异步就绕开 用aspx 或者mvc异步控制器 这次公司需要 我查了国内的文章基本都不能简单copy来处理一堆错关键的过程中函数BeginProcess ...
- ASP.NET ASHX 一般处理程序教程
你不想创建一个普通ASP.NET的Web窗体页.而又要通过一个查询字符串返回一个动态的图片.XML或者非HTML网页.这是一个用C#编程语言编写的使用ASHX(一般处理程序)的简单教程. 简介 首先, ...
- ASP.NET Core Web 应用程序系列(四)- ASP.NET Core 异步编程之async await
PS:异步编程的本质就是新开任务线程来处理. 约定:异步的方法名均以Async结尾. 实际上呢,异步编程就是通过Task.Run()来实现的. 了解线程的人都知道,新开一个线程来处理事务这个很常见,但 ...
- .net 在同步方法中使用拉姆达表达式执行async/await异步操作
代码如下: static void Main(string[] args) { ((Action)(async () =>{ var data = await HttpHelper.GetOnS ...
- ASP.NET 中的 Async/Await 简介
本文转载自MSDN 作者:Stephen Cleary 原文地址:https://msdn.microsoft.com/en-us/magazine/dn802603.aspx 大多数有关 async ...
- ASP.NET 上的 Async/Await 简介
原文链接 大多数有关 async/await 的在线资源假定您正在开发客户端应用程序,但在服务器上有 async 的位置吗?可以非常肯定地回答“有”.本文是对 ASP.NET 上异步请求的概念性概述, ...
- 传统asp.net小心 async/await坑
最近在改老项目时,干了一件自以为很有成就感的事,心想 “项目都是同步方法,为啥不用异步方法呢?”,于是有了异步方法,类型下面的代码(当然是举例子说明啊) //更新某人名下公司名称 public Tas ...
- ASP.NET 异步编程之Async await
本文重点介绍的是.NET Framework4.5 推出的异步编程方案 async await 请先看个5分钟的微软演示的视频:视频地址: https://channel9.msdn.com/Blo ...
- .net 4.5 新特性 async await 一般处理程序实例
using System; using System.Collections.Generic; using System.Linq; using System.Threading; using Sys ...
随机推荐
- css文字效果(文字剪贴蒙版,text-shodow的应用,文字排版等…)
.katex { display: inline-block; text-align: initial; } .katex { font-family: Consolas, Inconsolata, ...
- Effective Java 第三版——57. 最小化局部变量的作用域
Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...
- [洛谷P3014][USACO11FEB]牛线Cow Line (康托展开)(数论)
如果在阅读本文之前对于康托展开没有了解的同学请戳一下这里: 简陋的博客 百度百科 题目描述 N(1<=N<=20)头牛,编号为1...N,正在与FJ玩一个疯狂的游戏.奶牛会排成一行 ...
- 模拟页面获取的php数据(一)
<?php return array( "aData" => array(//通勤方式 "trafficType" => array( 0 = ...
- Springzz中使用监听器,用于容器一启动就加载准备数据(application范围内的数据,用于减轻服务器压力,不用每次都去查数据)
java代码: public class InitListener implements ServletContextListener { public void contextInitialized ...
- Object类--toString方法
toString()方法 1.在Object类中定义toString()方法的时候返回对象的哈希code码(对象地址字符串) 直接输出对象: 2.可以通过重写toString()方法表示出对象的属性之 ...
- 将控件画成圆角的效果(Delphi)
最近在做一个Delphi的项目,常常要设计软件的界面,需要将控件画成圆角矩形.在Delphi中将控件画成圆角效果,可使用CreateRoundRectRgn函数.在此写了一个通用的函数,只要在用到改变 ...
- MUI右滑关闭窗口用Webview的drag实现
mui.init({swipeBack:true}); 必须要用很快的速度摩擦屏幕才能达到右滑关闭窗口的效果,且在右边一般都会失效. mui这个滑动,是纯前端的,这个效率在Android上确实一般. ...
- Unity3D MonoBehaviour的生命周期(lifecycle)
官方的事件函数的执行顺序中有详解(Link:Execution Order of Event Functions) (图片来源:http://whatiseeinit.blogspot.com/201 ...
- 用PHP纯手工打造会动的多帧GIF图片验证码
效果演示: http://pcik.7di.net/pcik_reg 百度的效果演示: https://passport.baidu.com/cgi-bin/genimage?captchaservi ...