首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在RunWorkerCompleted触发后,BackgroundWorker OnProgressChanged仍然触发

在RunWorkerCompleted触发后,BackgroundWorker的OnProgressChanged事件仍然会触发。这是因为RunWorkerCompleted事件是在BackgroundWorker完成其工作后触发的,而OnProgressChanged事件是在BackgroundWorker执行任务期间,报告进度更改时触发的。

如果您希望在RunWorkerCompleted事件触发后停止OnProgressChanged事件的触发,可以在RunWorkerCompleted事件处理程序中取消订阅OnProgressChanged事件。例如:

代码语言:csharp
复制
private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    backgroundWorker.ProgressChanged -= backgroundWorker_ProgressChanged;
}

这将确保在RunWorkerCompleted事件触发后,OnProgressChanged事件不再触发。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 从零开始搭建一个GIS开发小框架(九)——WPF进度条效果

    今天借GIS项目实现一个进度条效果,这个效果在各种管理系统中是最常见的一个效果,特别是在处理某个任务消耗的时间过长的场景,可以避免UI假死,提高用户体验。我这次用的POI数据大概有90W条,这个目录树是我为了练手,故意拆成五层的,其实从第三层到第五层原本是放在一个字段里的string型POI类型描述,将它拆解成三层树结构时损耗了部分性能,到最下面一层(图标是感叹号)类型,大概有5700多个叶子节点,加载这个资源目录树需要一段时间,这里用委托实现页面传值+BackgroundWorker实现异步弹框进度条效果。我原来在winform里面实现过,但是WPF框架里还没做过,拿这个练练手,为今后的工(qiu)作(zhi)任(mian)务(shi)做好技术储备。

    03
    领券