2009-11-02 88 views

回答

3

這完全取決於你。這就是說,我認爲提供一個異步和同步API將使你的庫更像框架庫,這將給你的用戶正確使用它的最好機會。

例如,WebClient提供了DownloadFileDownloadFileAsync。我個人會在我的API中模仿這種行爲。如果您異步實現庫,則很容易將其封裝在同步API中。

0

我會避免在這樣的庫內異步調用。

如果庫的用戶不關心阻塞會怎麼樣?如果它是一個命令行腳本,應該塊?

應用程序的線程是一個主要的設計決策,避免爲他們做出決定。

我會首先實現阻塞,同步調用,也許以後會添加異步方法,以使該庫更容易用於線程害羞的程序員。

1

這是一個判斷呼籲你的結束。但是考慮:

  1. 用戶可以隨時使用BackgroundWorker避免阻塞,如果只是以同步的方式公開。

  2. 如果您認爲您可以在操作過程中提供一些中間數據(如進度百分比),那麼異步版本可能會有用。

相關問題