DownloadFileAsync vs DownloadFileTaskAsync

时间:2017-01-18 15:05:05

标签: c# async-await task webclient

  1. DownloadFileAsync DownloadFileTaskAsync 有什么区别?

  2. 什么时候应该使用一个而不是另一个?任何一个例子将不胜感激。

1 个答案:

答案 0 :(得分:7)

常规模式 - 如果您发现两个名称结尾为xxxAsyncxxxTaskAsync的方法,那么您通常应该更喜欢Task版本。

这两个版本将存在,因为xxxAsync版本是在引入Task-based Async Pattern(TAP)之前创建的,并且将基于较旧的异步模式。

在介绍TAP方法时,通常的建议是将名称后缀为Async - 但是当已经有另一种方法具有相同名称 1 时,这是不可能的 - 所以推荐然后是TaskAsync后缀。

在这种特定情况下,DownloadFileAsync"Event-based Async Pattern"的实现,使用起来往往更加尴尬。该模式本身取代了.NET Framework中的原始异步模式,该模式基于匹配BeginEnd前缀方法和IAsyncResultAsync Programming Model

1 当然,一般来说,只要它们具有不同的签名,您就可以引入多个具有相同名称的方法。但是当谈到异步模式时,EAP异步方法和TAP异步方法通常会采用相同的参数 - 它们只会在返回类型上有所不同。即使他们的论点确实存在差异,但将两种模式置于完全相同的名称下可能会引起更多的混淆。