C# BackgroudWorker

weixin_34304013發表於2011-11-05
在很多場合下, 你需要在主(UI)執行緒中執行一些比較耗時間的任務,比如以下的任務

l         Image downloads

l         Web service invocations

l         File downloads and uploads (including for peer-to-peer applications)

l         Complex local computations

l         Database transactions

l         Local disk access, given its slow speed relative to memory access

這個時候UI就會陷入一種假死的狀態,會給使用者帶來一種很不好的體驗. 如何在這裡發揮多執行緒的優勢以改善使用者體驗? .Net2.0的System.ComponentModel.BackgroundWorker為我們提供了一個很方便的解決方法.

 

BackgroundWorker內部實現是基於delegate的非同步呼叫.

 

backgroundWorkerDemo.zip