c# - BackgroundWorker.ReportProgress 阻塞调用
问题描述
如何BackgroundWorker.ReportProgress
等待 ProgressChanged 事件完成?
我有一个应用程序可以处理队列BackgroundWorker_DoWork
并在收到新文件时显示视频。
ReportProgress
是异步的,因此对它的多次调用会导致多种形式的视频在屏幕上堆叠,而不是一一出现。
当然,我可以ShowDialog()
直接从调用表单DoWork
,但表单使用的是 Windows Media Player 控件,它只能在 GUI 线程中工作。
再说一遍,从 调用它时如何等待ReportProgress
完成DoWork
?
解决方案
我认为您应该在 BackgroundWorkerCompleted 中显示您的视频。I Your Dowork 您可以将您的视频添加到列表中,然后在所有工作完成后,将它们一一展示。
推荐阅读
- javascript - 如何设置 Fullcalendar.io 时区
- ios - iPhone 11 Pro 三镜头跳跃变焦
- java - 从当前区域设置检索日期格式模式
- postgresql - 如何从 Postgres 的组中挑选一个 hstore 列?
- javascript - 我将如何格式化函数粘贴到文本区域的代码?
- javascript - 如何在 DOM 中呈现 Javascript console.log 的文本?
- windows - 您可以在同一个 PSExec 命令中执行多个批处理文件吗?
- python - 在任意轴上迭代体积的更 Pythonic 方式?
- web - 是什么阻止我通过检查响应标头来规避 CSP 随机数?
- input - Svelte - 使用复选框在两个输入值之间切换