.net 4.5 新特性 async await 一般处理程序实例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Web; namespace PaoTui.ServerSide.WeChat
{
/// <summary>
/// AsyncHandler1 的摘要说明
/// </summary>
public class AsyncHandler1 : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
if (context.Request.QueryString["para"] == "")
{
context.Response.Write("主方法开始<br/>");
//Task<int> result = GetIntResult(context); 带参数 方法
GetIntResult(context);//不带参数方法
context.Response.Write(" 主方法开始画圈圈<br/>");
for (int i = ; i < ; i++)
{
context.Response.Write("○");
}
context.Response.Write("\n 主方法画圈圈结束<br/>");
context.Response.Write("开始判断异步方法是否完成<br/>");
//if (!result.IsCompleted)
//{
// context.Response.Write("异步方法未完成,开始等待<br/>");
// result.Wait();
//}
//else
//{
// context.Response.Write("异步方法为完成<br/>");
//}
//context.Response.Write(" 最终结果:" + result.Result);
context.Response.Write("<br/>主方法结束");
}
else
{ context.Response.Write(" 同步方法开始,开始计算0到2的和<br/>"); int r = ;
for (int i = ; i < ; i++)
{
r += i;
Thread.Sleep();
}
context.Response.Write(" 主方法开始画圈圈<br/>");
for (int i = ; i < ; i++)
{
context.Response.Write("○");
}
context.Response.Write("<br/>主方法结束");
} } public bool IsReusable
{
get
{
return false;
}
}
///带参数返回方法
//public async Task<int> GetIntResult(HttpContext context)
//{ // context.Response.Write(" 异步方法开始调用<br/>");
// int result = await Task<int>.Run<int>(() =>
// {
// context.Response.Write(" await异步操作开始,开始计算0到2的和<br/>");
// int r = 0;
// for (int i = 0; i < 2; i++)
// {
// r += i;
// Thread.Sleep(1000);
// }
// context.Response.Write(" await异步操作结束<br/>");
// return r;
// });
// context.Response.Write(" 异步方法调用结束<br/>");
// return result;
//}
/// <summary>
/// 不带参数返回方法
/// </summary>
/// <param name="context"></param>
public async void GetIntResult(HttpContext context)
{ context.Response.Write(" 异步方法开始调用<br/>");
await Task.Run(() =>
{
context.Response.Write(" await异步操作开始,开始计算0到2的和<br/>");
int r = ;
for (int i = ; i < ; i++)
{
r += i;
Thread.Sleep();
}
context.Response.Write(" await异步操作结束<br/>" + r); });
//context.Response.Write(" 异步方法调用结束<br/>" + r); }
}
}
.net 4.5 新特性 async await 一般处理程序实例的更多相关文章
- 使用ES6新特性async await进行异步处理
我们往往在项目中会遇到这样的业务需求,就是首先先进行一个ajax请求,然后再进行下一个ajax请求,而下一个请求需要使用上一个请求得到的数据,请求少了还好说,如果多了,就要一层一层的嵌套,就好像有点c ...
- 四、C# 5.0 新特性——Async和Await使异步编程更简单
一.引言 .NET 4.5 的推出,对于C#又有了新特性的增加--就是C#5.0中async和await两个关键字,这两个关键字简化了异步编程,之所以简化了,还是因为编译器给我们做了更多的工作,下面就 ...
- 【转】【C#】C# 5.0 新特性——Async和Await使异步编程更简单
一.引言 在之前的C#基础知识系列文章中只介绍了从C#1.0到C#4.0中主要的特性,然而.NET 4.5 的推出,对于C#又有了新特性的增加--就是C#5.0中async和await两个关键字,这两 ...
- 转:[你必须知道的异步编程]C# 5.0 新特性——Async和Await使异步编程更简单
本专题概要: 引言 同步代码存在的问题 传统的异步编程改善程序的响应 C# 5.0 提供的async和await使异步编程更简单 async和await关键字剖析 小结 一.引言 在之前的C#基础知 ...
- [你必须知道的异步编程]C# 5.0 新特性——Async和Await使异步编程更简单
本专题概要: 引言 同步代码存在的问题 传统的异步编程改善程序的响应 C# 5.0 提供的async和await使异步编程更简单 async和await关键字剖析 小结 一.引言 在之前的C#基础知 ...
- 异步编程新方式async/await
一.前言 实际上对async/await并不是很陌生,早在阮大大的ES6教程里面就接触到了,但是一直处于理解并不熟练使用的状态,于是决定重新学习并且总结一下,写了这篇博文.如果文中有错误的地方还请各位 ...
- (译文)学习ES6非常棒的特性——Async / Await函数
try/catch 在使用Async/Await前,我们可能这样写: const main = (paramsA, paramsB, paramsC, done) => { funcA(para ...
- .NET4.5新特性async和await修饰符实现异步编程
开篇 每一个版本的.net都会引入一些新的特性,这些特性方便开发人员能够快速实现一些功能.虽然.net版本一直在更新,但是新版本对旧版本的程序都是兼容的,在这一点上微软做的还是非常好的.每次学一个新内 ...
- C# 5.0 新特性——Async和Await使异步编程更简单
http://www.cnblogs.com/zhili/archive/2013/05/15/csharp5asyncandawait.html http://blog.zhaojie.me/201 ...
随机推荐
- [Android算法] bitmap 将图片压缩到指定的大小
Bitmap压缩到指定大小: private void imageZoom() {//图片允许最大空间 单位:KBdouble maxSize =400.00;//将bitmap放至数组中,意在bit ...
- WebApi2官网学习记录---批量处理HTTP Message
原文:Batching Handler for ASP.NET Web API 自定义实现HttpMessageHandler public class BatchHandler : HttpMess ...
- (转)jQuery插件开发模式
要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...
- Java数据输入
以下是数据输入实例: //以下是数据输入实例 import java.util.Scanner;//导入java.util.Scanner,Scanner首字母大写 public class Test ...
- <转>请戒掉成功学和正能量,那是麻痹人的毒药 | 新知
非常不幸的是,这将是一场非常糟糕的演说.我不想骗你们,你们从我这里几乎什么也学不到.你们在离开的时候肯定会感到失望,你们的生活并不会得到改善. 更糟糕的是,你还会意识到生活的本质毫无意义,你的一切努力 ...
- shell中的if语句
语法格式 if command;then commands fi 其中的command包含如下: shell command 任何shell命令,如果shell命令返回0,代表true,否则,代表fa ...
- VC连接数据库方式
转自:http://www.cnblogs.com/renyuan/archive/2012/07/27/2612412.html 目前Windows系统上常见的数据库接口包括: ODBC(开放数据库 ...
- ajax请求参数为中文乱码的情况
解决中文乱码问题的方法有很多. 一.前提是ajax请求传递参数对象到后台,对象中的某个参数的值为中文,到后台之后出现乱码,导致报错.问题解决如下: rest层: 二.在tomcat的server.xm ...
- 图文-水平垂直居中兼容ie6+
图文-水平垂直居中兼容ie6+ 具体代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8&q ...
- dedecms友情链接flink的调用方法
标记名称:flink[标签简介][功能说明]:用于获取友情链接,其对应后台文件为"includetaglibflink.lib.php".[适用范围]:全局标记,适用V55,V56 ...