C#appliction后台工作者 - Thread.Sleep停止UI

时间:2015-05-03 18:56:52

标签: c# backgroundworker sleep

我正在制作一个C#应用程序来监控SQL中的一些东西。我使用后台工作程序来获取SQL数据,然后根据数据构建一些图表。很基本的。然而,这有一个令人沮丧的事情。在worker中使用Thread.Sleep会完全锁定UI。没有加载gif,输入没有注册,nada。这对我来说是非常奇怪的行为,因为从我读到的关于后台工作者用例的内容来看,它应该运行在它自己的线程上,完全与UI分开。什么给出了什么?我可以用什么代替这个?这是我的后台工作人员代码:

fatal error: ' opencv2\opencv.hpp ' file not found
#include < opencv2\opencv.hpp > 

1 个答案:

答案 0 :(得分:4)

工作线程上不会发生

BackgroundWorker_ProgressChanged,它发生在UI线程上。只有在BackgroundWorker_DoWork内发生的代码才会在工作线程上运行。

你在ProgressChanged内做的大部分工作(如果不是全部,我在你的代码中没有看到任何明确的UI交互,除非OverviewDetailed是UI组件)应该在DoWork内部发生