2017-01-18 34 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

相關問題