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异步方法通常会采用相同的参数-它们的返回类型只会有所不同。即使它们的论点确实有所不同,将这两种模式使用完全相同的名称也可能会引起更多的混乱。