我正在制作一个C#应用程序来监控SQL中的一些东西。我使用后台工作程序来获取SQL数据,然后根据数据构建一些图表。很基本的。然而,这有一个令人沮丧的事情。在worker中使用Thread.Sleep会完全锁定UI。没有加载gif,输入没有注册,nada。这对我来说是非常奇怪的行为,因为从我读到的关于后台工作者用例的内容来看,它应该运行在它自己的线程上,完全与UI分开。什么给出了什么?我可以用什么代替这个?这是我的后台工作人员代码:
fatal error: ' opencv2\opencv.hpp ' file not found
#include < opencv2\opencv.hpp >
答案 0 :(得分:4)
BackgroundWorker_ProgressChanged
,它发生在UI线程上。只有在BackgroundWorker_DoWork
内发生的代码才会在工作线程上运行。
你在ProgressChanged内做的大部分工作(如果不是全部,我在你的代码中没有看到任何明确的UI交互,除非Overview
和Detailed
是UI组件)应该在DoWork内部发生