【发布时间】:2017-05-16 10:29:04
【问题描述】:
我的问题是关于在 c# Forms 应用程序中具有多个 Windows.Forms.Timer 的性能。
例如,timerHora 有 1 秒的间隔,在标签中显示当前小时。
我没有任何异步方法,因此,当我运行应用程序时,我的 GUI 不会每秒刷新小时标签,我猜它与其他计时器在同一线程中运行,它等待其他功能完成,所以它有时每秒刷新一次,有时 2,3 或 4 秒。
那么...你能推荐我处理这个问题的最佳实践吗?
【问题讨论】:
-
您可以尝试减少计时器的数量,如this answer 中所述。另外我建议查看
System.Timers.Timer而不是System.Windows.Forms.Timer可能会提供一些性能优势。 -
谢谢,我会试试看,如果这个计时器不起作用,我想我会尝试线程
-
System.Timers.Timer确实使用单独的线程进行回调。但是您仍然需要与 UI 同步才能更改 UI。听起来您在 UI 线程上做的工作比您应该做的要多得多。将 UI 事物与阻塞和计算分开,UI 将保持响应。
标签: c# winforms performance timer