DownloadFileAsync 和 DownloadFileTaskAsync 有什么区别?
什么时候应该使用一个而不是另一个?任何一个例子将不胜感激。
答案 0 :(得分:7)
常规模式 - 如果您发现两个名称结尾为xxxAsync
和xxxTaskAsync
的方法,那么您通常应该更喜欢Task
版本。
这两个版本将存在,因为xxxAsync
版本是在引入Task-based Async Pattern(TAP)之前创建的,并且将基于较旧的异步模式。
在介绍TAP方法时,通常的建议是将名称后缀为Async
- 但是当已经有另一种方法具有相同名称 1 时,这是不可能的 - 所以推荐然后是TaskAsync
后缀。
在这种特定情况下,DownloadFileAsync
是"Event-based Async Pattern"的实现,使用起来往往更加尴尬。该模式本身取代了.NET Framework中的原始异步模式,该模式基于匹配Begin
和End
前缀方法和IAsyncResult
,Async Programming Model
1 当然,一般来说,只要它们具有不同的签名,您就可以引入多个具有相同名称的方法。但是当谈到异步模式时,EAP异步方法和TAP异步方法通常会采用相同的参数 - 它们只会在返回类型上有所不同。即使他们的论点确实存在差异,但将两种模式置于完全相同的名称下可能会引起更多的混淆。