如何在.net4.0中使用.net4.5的async/await

推荐文章:

http://www.cnblogs.com/hj4444/p/3857771.html

http://www.cnblogs.com/dozer/archive/2012/03/06/async-and-await-in-web-application.html

一般喜欢学习新技术的同学都用过.net4.5吧,那肯定会被简单、高效的异步编程模型所吸引吧。

去年微软发布了Microsoft.Bcl.Async,该包由三个库组成:Microsoft.Bcl、Microsoft.Bcl.Async和Microsoft.Bcl.Build。

或者直接在PM命令中输入:

PM> Install-Package Microsoft.Bcl.Async

相关文章可以参考:

Microsoft.Bcl.Async is Now Stable
async 与 await 在 Web 下的应用

可能会碰到的问题:

1、出现编译异常

那需要你检查一下各项目中是否都有引用。由于使用了程序集统一的方式,解决方案中的所有工程都必须引用这三个库。

2、使用异常

如果异常信息是“Message : Could not load file or assembly ‘System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes‘ or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)”,

那需要你去微软官网下载.net4.0的KB2468871补丁来安装。

KB2468871补丁-支持的操作系统

Windows 7 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Server 2008, Windows Server 2008 R2 SP1, Windows Vista Service Pack 1, Windows XP Service Pack 3

时间: 2024-08-28 07:51:35

如何在.net4.0中使用.net4.5的async/await的相关文章

NET4.0中非常好用的一个东西Tuple

最近发现了.NET4.0中一个非常好用的东西Tuple,自从知道了它之后,发现我的代码里面到处都是它的身影.那么Tuple究竟是何物呢? 在知道Tuple之前,我经常碰到要使用一些记录的集合,如果每条记录只有一个元素,一般都是用List来存储,如果每条记录,我想记录两个属性,我一般用Dictionary<int,int>来存储,但是如果每个记录要记录三个属性,甚至四个属性的时候,那么我们只能定义一个数据结构或者实体类来进行存储,然后再把这个实体装到List中去.但是大多数时候,这么一个List

&lt;pages validateRequest=&quot;false&quot;/&gt;在.net4.0中无效的问题

再web.config中设置<pages validateRequest="false"/>在.net4.0中无效的问题 解决方案: <system.web> <httpRuntime requestValidationMode="2.0"/> <pages validateRequest="false"/> </system.web> 新增<httpRuntime request

[C#] .NET4.0中使用4.5中的 async/await 功能实现异步

在.NET Framework 4.5中添加了新的异步操作库,但是在.NET Framework 4.0中却无法使用.这时不免面临着抉择,到底是升级整个解决方案还是不使用呢? 如果你的软件还没发布出去,建议直接使用.NET Framework 4.5吧:但是如果已经发布了,又不想用户重新升级框架到.NET Framework 4.5,那也有一个办法,那就是使用库:Microsoft.Bcl.Async 在4.5中使用async/await 的地方如下: 好处呢,我不多说,我想说的是: What

.Net4.0如何实现.NET4.5中的Task.Run及Task.Delay方法

前言 .NET4.0下是没有Task.Run及Task.Delay方法的,而.NET4.5已经实现,对于还在使用.NET4.0的同学来说,如何在.NET4.0下实现这两个方法呢? 在.NET4.0下,有一个泛型类,叫TaskCompletionSource<TReuslt>,它能控制Task的行为,如给Task设置结果.设置异常.设置取消等. MSDN是这样描述的(网址): 表示未绑定到委托的 Task<TResult> 的制造者方,并通过Task属性提供对使用者方的访问. 它有以

ASP.Net4.0中新增23项功能

这篇文章介绍Visual Studio 2010 (ASP.Net 4.0)的新功能. 1.代码片段(Code Snippets): 代码段是预先开发的代码模板,可以节省我们对有关语法思考的时间.在VS 2005和VS 2008中,已经有建立了很多代码段.不过,这些只适用于隐藏代码(code behind).在VS 2010中代码片段支持JScript,HTML以及asp.net标记.在下面画面,展示了JScript和HTML片段的快捷菜单. 在JS中: 在Html中 : 2.New Profi

C#中 Thread,Task,Async/Await,IAsyncResult 的那些事儿!

说起异步,Thread,Task,async/await,IAsyncResult 这些东西肯定是绕不开的,今天就来依次聊聊他们 1.线程(Thread) 多线程的意义在于一个应用程序中,有多个执行部分可以同时执行:对于比较耗时的操作(例如io,数据库操作),或者等待响应(如WCF通信)的操作,可以单独开启后台线程来执行,这样主线程就不会阻塞,可以继续往下执行:等到后台线程执行完毕,再通知主线程,然后做出对应操作! 在C#中开启新线程比较简单 static void Main(string[]

ASP.NET4.0中JavaScript脚本调用Web Service 方法

环境:VS2019  .net 4.0 framework 根据教材使用ScriptManager在JavaScript中调用Web service 时,失败.现将过程和解决方法记录如下: 1.定义Web Service using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace AjaxTest1 { /// <

VS2010环境下.NET4.0中Tuple&lt;T&gt;的一个小BUG问题

启动一个桌面程序后,发现一个窗体cfdata=null, 执行时发生错误, 但是在初始化的时候,我明明是cfdata=new Cfdata();为什么会出现这个错误呢. 我开始跟踪,发现当执行cfdata=new Cfdata()时, 执行被中断, 后面的代码没有执行, 但是VS2010没有报错, 也就是执行到cfdata=new Cfdata()时发生了错误!但是VS2010没有提示我! 继续调试跟踪,问题出现了以下代码,使用了未赋值的Tuple<T1,T2>的成员值, 而VS2010并没有

Asp.Net4.0/VS2010新变化(3):webform中也可以直接url路由

以前在做asp的时候,要把 /default.asp?id=123映射成/default/123,需要借助IISRewriter这个组件,到了asp.net以后,可以用代码写了,但是个人觉得很麻烦,要写一堆代码,还要修改web.config,现在好了:asp.net4.0中 asp.net mvc中的路由规则全部可以用于webform了 使用步骤: 1.Global.ascx.cs中先注册路由规则 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19