DownloadFileAsync 和 DownloadFileTaskAsync 有什么区别?
什么时候应该使用一个而不是另一个?任何例子将不胜感激。
最佳答案
一般模式 - 如果您发现两个名称以 xxxAsync
结尾的方法和 xxxTaskAsync
, 那么你通常应该更喜欢 Task
版本。
这两个版本将存在,因为 xxxAsync
版本创建于 Task-based Async Pattern 之前(TAP) 被引入,并将基于旧的异步模式。
在引入 TAP 方法时,通常的建议是在名称后缀 Async
- 但是当已经有另一个具有相同名称的方法1 时无法完成 - 因此建议使用 TaskAsync
作为后缀.
在这个具体案例中 DownloadFileAsync
是 "Event-based Async Pattern" 的一个实现(EAP),使用起来往往更尴尬。该模式本身取代了 .NET Framework 中基于匹配 Begin
的原始异步模式。和 End
前缀方法和 IAsyncResult
, Async Programming Model
1一般来说,当然可以引入多个同名的方法,只要它们有不同的签名即可。但是当谈到异步模式时,EAP 异步方法和 TAP 异步方法通常采用相同的参数——它们只是返回类型不同。即使他们的论点确实有所不同,将这两种模式置于完全相同的名称下也可能会造成更多困惑。
关于c# - DownloadFileAsync 与 DownloadFileTaskAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41722757/