有机会试过 Visual Studio 11 或者 Visual Studio Async CTP 的开发人员想必对 Visual Basic 和 C#中新的 Await 和 Async 关键字一定不陌生。最近,微软披露了.NET Framework 4.5 中一些新的变化细节,用于一步扩展异步编程的能力。
.NET 4.5 中编写异步代码已经可以信手拈来,它不再需要借助非常复杂的方法或回调。新的 async 任务结构在开发人员看来会非常熟悉,例如下面的例子展示了一个同步方法声明以及它对应的异步声明:
'synchronous method Private Function GetInfo(url As String) As Byte() 'asynchronous method Private Async Function GetInfo(url As String) As Task(Of Byte())
异步方法返回的结果是一个任务;当 Await 调用作用于该任务时,方法会立刻暂停,并等到任务完成后恢复运行。虽然看起来结构很简单,但在实现异步代码时还得关注大量注意事项以避免降低性能。
除了C#和Visual Basic 语言的改动之外,.NET Framework 4.5 开发者预览版还增加了一批常用操作的异步方法。System.IO 目前包含了如ReadAsync、WriteAsync、CopyToAsync 和其他一些方法。System.Data.Common 和System.Data.SqlClient 中许多方法也有了相应的异步版本,如ExecuteQueryAsync、ExecuteScalarAsync 和ReadAsync。
ASP.NET 4.5 允许开发人员异步使用 HttpRequest.GetBufferlessInputStream,并引入 HttpTaskAsyncHandler 简化异步处理程序编写和任务使用。Windows Communication Foundation(WCF)和 Windows Presentation Foundation(WPF)也包含了新的异步特性。
想要开始学习.NET Framework 4.5 Beta 中的新的异步特性,可以访问 Visual Studio 异步编程站点。另外,该框架一方面作为 Visual Studio 11 的一部分发布,另一方面还可以通过 Async CTP for Visual Studio 2010 访问到它。
查看英文原文: New Asynchronous Features Enhance .NET Framework 4.5
评论