BackgroundWorker异步防假死处理

异步操作时界面老是假死?Windows Forms 里的BackgroundWorker类真的挺管用的。它专门干这事的——让你跑长任务的同时,界面还能响应用户操作,不闪不挂。像统计文件数量、批量数据这些活,直接丢给它。你不用操心线程同步,它那几个事件DoWorkProgressChangedRunWorkerCompleted一配合,流程清清楚楚,还能实时更新进度。简单点说:后台干活,前台美观,用户不抓狂。

不过要注意一点:别在DoWork里碰 UI。你要更新界面,用ProgressChanged就行。用的时候可以开WorkerReportsProgressWorkerSupportsCancellation,想取消也能随时停。

下面这段代码就是个小例子,后台算斐波那契数列,主线程一点也不卡:

doc 文件大小:43KB