古詩詞大全網 - 成語解釋 - C#中 BackGroundWorker與Thread的區別?

C#中 BackGroundWorker與Thread的區別?

使用Thread ,在多線程編程中經常需要在線程間***享資源。例如,多個線程可能需要訪問壹個***享數據庫,或對壹組系統變量進行更新。當多個線程同時競爭***享資源的訪問權時,就可能會出現“爭用狀態”。您可以通過使用“鎖”來保護代碼的關鍵部分免受爭用狀態的損壞。當然這需要通過細致的手動編碼來實現.

在.NET Framework 2.0中 BackgroundWorker 組件取代了 System.Threading 命名空間並添加了功能,簡化了面向用戶的編碼難度,可以很好的幫妳處理多線程間的調度,保護等方面的問題,通過提供面向對象的線程模型來使您能夠快速、方便地創建多線程應用程序。

對於對線程開發, 需要註意:是否使用lock 關鍵字可以用來確保代碼塊完成運行,而不會被其他線程中斷,是否及時的創建和終止線程,是否使用線程池來管理每壹個線程,此外,簡單的創建及銷毀線程的測試程序是不足以說明該技術的實際應用的.