C#学习心得(二) 异步编程
来源:互联网 发布:淘宝修改销量 编辑:程序博客网 时间:2024/05/17 02:57
异步编程是指程序在执行异步操作时,无法马上获得结果,而在异步操作过程中,程序可以执行其他操作,当异步操作完成时,通过状态,通知,回调等来告知调用者。异步编程的好处是显而易见的,比如WEB应用,如果不是采用异步编程,那么当客户端向服务器发送请求时,在得到服务器响应的过程中,客户端都处于一种等待状况,用户无法对其进行相关的操作,这样的用户体验显然是非常差的。
C#异步编程有3种实现方式,第一种是APM(Asynchromous Programming Model ),.net类库中的Beginxxx和Endxxx方法其实就实现了异步编程,当然用户也可以自定义实现异步操作的类,要求这个类实现返回类型为IAsyncResult的Beginxxx和Endxxx方法。
第二种是 async / await ,一下为教科书上的一段代码,
async Task<int> AccessTheWebAsync() { HVpClientclient = new HVpClient(); Task<string> getStringTask = client.GetStringAsync("hVp://msdn.microsod.com"); DoIndependentWork(); string urlContents = await getStringTask; returnurlContents.Length; }
这种方式有一个问题需要特别注意,就是对于只标识async关键字的(指在方法内没有出现await关键字)的方法,调用线程会把 该方法当成同步方法一样执行,所以还是会堵塞GUI线程,只有当async和await关键字同时出现,该方 法才被转换为异步方法处理。
第三种为HttpClient和WebClient,HttpWebRequest有一些区别:
1、在HttpClient实例上配置扩展,设置默认的头部,取消未完成的请求和更多的设置。
2、你通过一个单一的HttpClient实例,它有自己的连接池。
3、HttpClients不与特定的HTTP服务器绑定,你可以使用相同的HttpClient实例提交任 何HTTP请求。
4、你可以用HttpClient为特定的站点创建特殊的Client
5、HttpClient采用新的型模式处理异步请求使它更容易管理和协调更多的请求
- C#学习心得(二) 异步编程
- C#异步编程之:(二)部分心得体会
- Java学习心得之GUI编程(二)
- zookeeper学习心得二:同步与异步
- C#编程总结(六)异步编程
- C#编程总结(六)异步编程
- C#编程总结(六)异步编程
- C#编程总结(六)异步编程
- 编程之美学习心得 二 (未完待续)
- Java编程思想学习心得(二)Java中的对象
- C#异步委托实例概述(二)
- C#异步线程(二)Thread类
- C# 文件下载(二)异步
- c# 异步编程(async + await + HttpClient)
- c#之异步编程 (基于委托)
- C# 异步编程笔记(上)
- C#异步网络编程
- 转帖---c#异步编程
- SpringMVC日期转换之JsonSerialize
- Linux 的 splice 和sendfile系统调用
- 简单部署cloudstack
- 快速排序
- scanner学习
- C#学习心得(二) 异步编程
- 计数排序 Counting Sort
- C++的一些知识点总结
- 用友“4+1”帮助企业集团管控升级
- 世界杯座位选择顺序总数
- bugfree删除纪录
- iOS:Bug-isEqual
- 数据操作的封装--sqlhelper
- Java内部类的使用小结