在这种情况下我应该使用后台工作人员还是计时器?

时间:2012-01-23 03:47:46

标签: c# multithreading timer backgroundworker

我正在编写一个管理一堆计时器的程序。

用户必须手动启动它们,并且能够从每个计时器获取信息,以便知道剩余时间。

我不希望GUI冻结,因此我不希望主表单线程上有一个冻结整个事物的计时器。

那么,Timer类是否在新线程上发送定时器,还是将它保留在主UI线程上?

否则,我应该使用后台工作程序来完成此任务吗?

2 个答案:

答案 0 :(得分:7)

System.Windows.Forms.Timer事件在UI线程上运行。

相反,您可以使用在工作线程上运行的System.Threading.Timer

参考。 :Comparing the Timer Classes in the .NET Framework Class Library

答案 1 :(得分:0)

取决于您使用的类型计时器,建议您阅读these articles以确定最佳状态。