我正在研究一個類庫,其中一個類負責從互聯網上使用XDocument.Load(url)
檢索一個Xml文件。鑑於此操作可能需要幾秒鐘才能完成,因此可以在自己的線程上運行它。.Net類庫:線程的責任
誰來負責創建這個線程?消費者或檢索文件的類?有關於此的最佳做法嗎?
我正在研究一個類庫,其中一個類負責從互聯網上使用XDocument.Load(url)
檢索一個Xml文件。鑑於此操作可能需要幾秒鐘才能完成,因此可以在自己的線程上運行它。.Net類庫:線程的責任
誰來負責創建這個線程?消費者或檢索文件的類?有關於此的最佳做法嗎?
我認爲這兩種選擇都不錯。這也取決於你有多少地方會使用這種方法來獲取數據。如果它在多個地方使用,那麼在檢索文件的類中安排線程是非常有意義的。
我個人會去找最後一個,因爲如果我需要在更多地方使用它(可能以後),這會給我更多的靈活性。
想到這個問題時,我們想到了前綴方法BeginDoSomeOperation和EndDoSomeOperation,它會給最後一個選項帶來更多的功勞。
當你讓你的類庫多線程,請注意鎖定。在高負載環境(服務器應用程序)中,這可能會很快收到數千個鎖。相應地使用任務並行庫和/或併發集合來幫助最大限度地減少鎖定,否則庫會很快崩潰並燒燬。 – drharris 2011-06-01 06:58:29
@drharris非常感謝您的建議! – aligray 2011-06-01 07:14:08