簡體   English   中英

是否應該在我的IMDB API庫中為開發人員提供Sync或Async方法?

[英]Should I provide Sync or Async methods for developers in my IMDB API library?

我將制作一個DLL庫,使開發人員可以搜索和訪問IMDB電影頁面。

我應該如何處理GUI中的凍結,應該使用異步方法,還是應該允許開發人員手動創建一個線程來使用DLL?

這完全取決於您。

話雖如此,我認為提供異步和同步API將使您的庫更像框架庫,這將為您的用戶提供正確使用它的最佳機會。

例如,WebClient提供DownloadFileDownloadFileAsync 我個人將在我的API中模仿這種行為。 如果您以異步方式實現您的庫,則將其包裝在同步API中非常容易。

這是對您的判斷。 但是請考慮:

  1. 如果您僅以同步方式公開,則用戶始終可以使用BackgroundWorker來避免阻塞。

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

我會避免在這樣的庫中進行異步調用。

如果庫的用戶不關心阻塞怎么辦? 如果應該阻止的命令行腳本怎么辦?

應用程序的線程化是一個主要的設計決策,請避免為此做出決定。

我將首先實現阻塞,同步調用,也許以后再添加異步方法,以使該庫更容易用於對線程敏感的程序員。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM