当前位置:  开发笔记 > 编程语言 > 正文

DownloadFileAsync vs DownloadFileTaskAsync

如何解决《DownloadFileAsyncvsDownloadFileTaskAsync》经验,为你挑选了1个好方法。

一般模式-如果你发现两种方法有名称结尾的xxxAsyncxxxTaskAsync,那么你应该一般都比较喜欢的Task版本.

这两个版本将存在,因为该xxxAsync版本是在引入基于任务的异步模式(TAP)之前创建的,并且将基于较旧的异步模式.

在引入TAP方法时,通常的建议是将名称后缀Async- 但是当已经有另一个具有相同名称的方法1时无法完成- 因此建议后缀为TaskAsync.

在这种特定情况下,DownloadFileAsync是"基于事件的异步模式"的实现,它往往更难以使用.该模式本身取代了.NET Framework中的原始异步模式,该模式基于匹配BeginEnd前缀方法IAsyncResult,以及异步编程模型


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



1> Damien_The_U..:

一般模式-如果你发现两种方法有名称结尾的xxxAsyncxxxTaskAsync,那么你应该一般都比较喜欢的Task版本.

这两个版本将存在,因为该xxxAsync版本是在引入基于任务的异步模式(TAP)之前创建的,并且将基于较旧的异步模式.

在引入TAP方法时,通常的建议是将名称后缀Async- 但是当已经有另一个具有相同名称的方法1时无法完成- 因此建议后缀为TaskAsync.

在这种特定情况下,DownloadFileAsync是"基于事件的异步模式"的实现,它往往更难以使用.该模式本身取代了.NET Framework中的原始异步模式,该模式基于匹配BeginEnd前缀方法IAsyncResult,以及异步编程模型


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


..对于“ DownloadFileAsync”,您需要向“ DownloadFileCompleted”事件中添加事件处理程序,以了解其完成时间,而不是仅等待“ DownloadFileTaskAsync”返回的任务
推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有