【发布时间】:2012-01-23 03:47:46
【问题描述】:
我正在编写一个管理一堆计时器的程序。
用户必须手动启动它们,并且能够从每个计时器获取信息,例如了解剩余时间。
我不想让 GUI 冻结,因此我不想在主窗体线程上设置一个计时器来冻结整个事情。
那么,Timer 类是在新线程上发送计时器,还是将其保留在主 UI 线程上?
否则,我应该使用后台工作人员来完成此操作吗?
【问题讨论】:
标签: c# multithreading timer backgroundworker
我正在编写一个管理一堆计时器的程序。
用户必须手动启动它们,并且能够从每个计时器获取信息,例如了解剩余时间。
我不想让 GUI 冻结,因此我不想在主窗体线程上设置一个计时器来冻结整个事情。
那么,Timer 类是在新线程上发送计时器,还是将其保留在主 UI 线程上?
否则,我应该使用后台工作人员来完成此操作吗?
【问题讨论】:
标签: c# multithreading timer backgroundworker
System.Windows.Forms.Timer 事件在 UI 线程上运行。
相反,您可以使用在工作线程上运行的System.Threading.Timer。
参考。 :Comparing the Timer Classes in the .NET Framework Class Library
【讨论】: