DownloadFileAsync 与 DownloadFileTaskAsync

DownloadFileAsync vs DownloadFileTaskAsync

  1. DownloadFileAsyncDownloadFileTaskAsync 有什么区别?

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

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

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

引入 TAP 方法时,通常的建议是在名称后缀 Async - 但当已经有另一个具有相同名称的方法时,就不能这样做了1 - 因此建议使用 TaskAsync.

作为后缀

在此特定情况下,DownloadFileAsync"Event-based Async Pattern" (EAP), which tends to be more awkward to work with. That pattern, itself, superceded the original async pattern within the .NET Framework, which was based on matching Begin and End prefixed methods and IAsyncResult, the Async Programming Model

的实现

1一般来说,当然可以引入多个同名的方法,前提是它们有不同的签名。但是当涉及到异步模式时,EAP 异步方法和 TAP 异步方法通常采用相同的参数——它们仅在 return 类型上有所不同。即使他们的论点确实有所不同,将两种模式置于完全相同的名称下也可能会造成更多混乱。