在我的 WPF C# 应用程序中,我在处理事务时显示一个小圆圈动画,让用户知道应用程序正在“思考”,他们应该放松一下。这是一个单独的exe。因此,例如,当用户单击按钮来运行分析(可能需要 5-10 秒)时,我会启动显示动画的过程,当一切完成后,我会停止该过程。在此期间,新产生了子线程来处理后台任务。完成后,UI 将更新,由于数据网格复杂,这可能需要几秒钟的时间。
虽然这在技术上可行,但我宁愿以不同的方式处理它。我宁愿让应用程序自动检测线程何时工作并自动显示动画,当线程全部完成时,它停止显示动画。我可以轻松检测后台线程,但如何检测 UI 线程呢?我宁愿这样做,因为有几次我不小心错过了杀死应用程序,但处理完成后它仍在运行。这可以防止这种情况发生。
UI 线程启动和停止时是否会触发事件?如果没有,假设我在其中放置了一个每 1/2 秒触发一次的计时器,我是否可以进行调用来告诉我 UI 线程的状态?
谢谢
最佳答案
更好的方法是将处理移出 UI(例如使用 BackgroundWorker
并让后台工作人员将通知发布到 UI 线程(开始、进度更新、完成)。 p>
不要重新发明轮子并将处理逻辑移出 UI 线程。
关于c# - 如何使用 C# 检测 WPF 中 UI 线程何时启动和停止处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14260693/