.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 EditText插入字符串到光标所在位置
EditText mTextInput=(EditText)findViewById(R.id.input);//EditText对象 int index = mTextInput.getSelect ...
- UIApplication的作用
1.设置app图标右上角的数字2.设置状态栏的属性(样式.是否要显示)3.打开某个链接\发短信\打电话4.keyWindow : 访问程序的主窗口(一个程序只能有一个主窗口)5.windows : 访 ...
- asp.net服务器向客户端弹出对话框,但不使页面边白板
1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Web; 5: ...
- TravelCMS旅游网站系统诞生记
本人就是一纯粹码农,没什么学历,更没什么技术,但是自认为学习能力还不错,近期有一个旅游网站系统项目正在进行中,在此以贴图记录这个项目的诞生过程,本是一个定制系统,但是不想把系统做死,以通用产品的标准来 ...
- Property与Attribute的区别
Property属于面向对象的范畴----属性 Attribute则是编程语言文法层面的东西----特征 Property属于面向对象的范畴.在使用面向对象编程的时候,常常需要对客观 ...
- 工欲善其事必先利其器---SQL在线可视化模型设计,(还可学习拖拽知识)
作为技术人员,在开发项目中,不可避免的要跟数据库打交道,一个完整的项目正常情况下是讨论完整体需求,有了大致的框框在脑海中后,是需要设计合理的数据库的,这时会有其他的专业的UML建模工具可以使用, 但是 ...
- IIS报500.0错误
IIS安全里面配置:Everyone.IUSR.IIS_IUSRS 参考地址:http://blog.chinaunix.net/uid-21375345-id-3213631.html
- Web C# 导出Excel 方法总结
方法1:微软推荐服务器需安装Excel型 依赖: 软件:Office Excel 2007-2013 引用:Microsoft Office 14.0 Object Library 1.1 数据准备 ...
- C语言中的静态局部变量
代码: 0x601070 0x7ffcf44243fc 0x60106c 0x60106c 0x60106c [hu@localhost test]$ cat test.cpp #include &l ...
- ECSHOP_百度收录网址后面有?from=rss
ecshop的feed.xml文件中间添加了?from=rss,百度蜘蛛抓取收录后,会出现frome页面,导致商品列表重复抓取,访问出错. 修改方法简单: 在根目录下的feed.php找到(八处), ...