2017-01-18 32 views

回答

6

一般模式 - 如果你发现两种方法有名字结束xxxAsyncxxxTaskAsync,那么你通常应该喜欢Task版本。

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

在介绍TAP方法,通常的建议是与Async的后缀名 - 但是当已经有具有相同名称另一种方法,不能做 - 那么则建议与TaskAsync的后缀。

在这种特定情况下,DownloadFileAsync"Event-based Async Pattern"的实现,它往往更难处理。这种模式本身所取代.NET框架中的原始异步模式,这是基于匹配BeginEnd前缀的方法和IAsyncResult,该Async Programming Model


一般,当然,您能介绍多个具有相同名称的方法,只要它们具有不同的签名。但是,当涉及到异步模式时,EAP异步方法和TAP异步方法通常会采用相同的参数 - 它们只会在返回类型上有所不同。即使他们的论点有所不同,将两种模式置于同一名称下也可能会导致更多混淆。

+1

..对于'DownloadFileAsync',你需要添加一个事件处理程序到'DownloadFileCompleted'事件来知道它什么时候完成,而不是等待由'DownloadFileTaskAsync'返回的任务。 – stuartd

相关问题