- ·上一篇文章:C#泛型类与泛型方法的使用
- ·下一篇文章:C#中使用Lock关键字进行线程同步
C#5.0的新特性:异步编程
如果你习惯在.NET 4或者更早之前版本上使用异步编程,你会习惯成对地使用Begin和End方法,比如WebRequest.BeginGetResponse 和WebRequest.EndGetResponse。这在.NET4.5中依然存在,但它们不使用await关键字。(主要是因为BeginXxx方法需要在回调中使用确切的方法调用来得到结果,而且编译器并不依赖EndXxx命名规范).NET4.5提供了返回Task对象的新方法,所以你可以调用WebRequest.GetResponseAsync来代替WebRequest.BeginGetResponse方法。下面是一个.NET4.5中使用异步API的一个实例:
private static async Task<string> GetContent(string url)
{
WebRequest wr = WebRequest.Create(url);
var response = await wr.GetResponseAsync();
using (var stm = response.GetResponseStream())
{
using (var reader = new StreamReader(stm))
{
var content = await reader.ReadToEndAsync();
return content;
}
}
}
这和使用 WebRequest.GetResponse() 和 TextReader.ReadToEnd()的同步代码是如此相似,只需要在API名后加上Async并且在方法前加上"await"关键字就可以了,相信你很快就能掌握它。
C#5.0的新特性:异步编程