BackgroundWorker多线程应用示例

后台任务的,BackgroundWorker算是.NET 里蛮好用的一个老朋友了。它能帮你在不阻塞 UI 的前提下,搞定一些比较耗时的操作,像下载、文件、数据库操作这些,用起来还挺顺的。适合那种用 WPF 或者 WinForms 做桌面程序的场景。

BackgroundWorker 的多线程机制不是啥高深的黑科技,胜在简单实用。你只要搞清楚几个关键事件:DoWork负责干活,ProgressChanged负责报进度,RunWorkerCompleted管收尾。事件模型也清晰,不绕人。

像下面这样初始化:

BackgroundWorker bgw = new BackgroundWorker();
bgw.WorkerReportsProgress = true;
bgw.WorkerSupportsCancellation = true;

这样设置后就可以跑异步了,而且还能中途取消,也能实时反馈进度,UI 线程不会卡,用户体验直接提升。

DoWork事件也简单,像这样:

private void bgw_DoWork(object sender, DoWorkEventArgs e) {
    for (int i = 0; i < 100>

更新进度条啥的就靠ProgressChanged事件来搞定,整个流程清晰明了。

如果你平时搞 WinForms 或者 WPF,又经常碰到 UI 卡顿问题,不妨试试这个。简单、稳定、够用,关键是写起来没什么门槛。

rar 文件大小:32.86KB