2014-02-25 28 views
1

我有一个C#Windows窗体应用程序,有一些相机控制和计算机视觉。对于需要更长时间计算的所有部件,我使用了独立线程。但是在GUI的回调函数中仍然有一些部分。据我所知,所有这些回调函数都在同一个线程中执行。有没有办法看到这个线程工作或闲置多少时间?需要多少百分比的空闲时间才能使GUI仍然响应?如何查看C#Windows Forms应用程序需要多少处理时间?

+0

你可以使用这个想法在下面的问题中提到:http://stackoverflow.com/questions/9954571/how- c键-计算-执行-时间 - 锋利应用 – Monah

回答

0

对于简单的任务,您可以使用秒表并手动测量时间。不过,我认为你需要检查一下performance profiler是什么。

此外 - 有几种情况下,您的GUI需要重处理。在大多数情况下,问题来自在事件处理程序中进行太多计算,而不是在外部实现它们,然后在完成时更新表单。它不是单个/多线程问题,更多是正确使用可用事件。

2

这是recommended你不应该阻止UI线程超过50ms,否则会影响UI的响应。也就是说,两个用户界面回调队列排列在Form.BeginInvoke之间,每人花费约50ms完成,可能会给用户带来不愉快的UI体验。

更新用户界面比用户对其做出反应(即每秒大约24帧)没有任何意义。所以,您应该扼制UI线程回调并为用户输入事件提供优先权。

我最近公布的它如何可能做一个例子:

https://stackoverflow.com/a/21654436/1768303

相关问题