[英]Should I provide Sync or Async methods for developers in my IMDB API library?
我將制作一個DLL庫,使開發人員可以搜索和訪問IMDB電影頁面。
我應該如何處理GUI中的凍結,應該使用異步方法,還是應該允許開發人員手動創建一個線程來使用DLL?
這完全取決於您。
話雖如此,我認為提供異步和同步API將使您的庫更像框架庫,這將為您的用戶提供正確使用它的最佳機會。
例如,WebClient提供DownloadFile和DownloadFileAsync 。 我個人將在我的API中模仿這種行為。 如果您以異步方式實現您的庫,則將其包裝在同步API中非常容易。
這是對您的判斷。 但是請考慮:
如果您僅以同步方式公開,則用戶始終可以使用BackgroundWorker
來避免阻塞。
如果您認為可以在操作過程中提供一些中間數據(例如進度百分比),那么異步版本可能會有用。
我會避免在這樣的庫中進行異步調用。
如果庫的用戶不關心阻塞怎么辦? 如果應該阻止的命令行腳本怎么辦?
應用程序的線程化是一個主要的設計決策,請避免為此做出決定。
我將首先實現阻塞,同步調用,也許以后再添加異步方法,以使該庫更容易用於對線程敏感的程序員。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.