BackgroundWorker异步防假死处理
异步操作时界面老是假死?Windows Forms 里的BackgroundWorker
类真的挺管用的。它专门干这事的——让你跑长任务的同时,界面还能响应用户操作,不闪不挂。像统计文件数量、批量数据这些活,直接丢给它。你不用操心线程同步,它那几个事件DoWork
、ProgressChanged
和RunWorkerCompleted
一配合,流程清清楚楚,还能实时更新进度。简单点说:后台干活,前台美观,用户不抓狂。
不过要注意一点:别在DoWork
里碰 UI。你要更新界面,用ProgressChanged
就行。用的时候可以开WorkerReportsProgress
和WorkerSupportsCancellation
,想取消也能随时停。
下面这段代码就是个小例子,后台算斐波那契数列,主线程一点也不卡:
43KB
文件大小:
评论区