当前位置:K88软件开发文章中心编程语言.NET.NET01 → 文章内容

C#5.0的新特性:异步编程

减小字体 增大字体 作者:佚名  来源:翔宇亭IT乐园  发布时间:2018-12-31 11:50:55

c-friendly APIs

如果你习惯在.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"关键字就可以了,相信你很快就能掌握它。

上一页  [1] [2] 


C#5.0的新特性:异步编程