线程上的计时器?

时间:2010-11-16 08:53:22

标签: c# winforms multithreading timer

我可以在线程上成功创建一个计时器时钟吗?我正在创建一个,但似乎没有那么好。我的应用程序是一个多线程应用程序,必须在某个事件发生时在线程上启动计时器。计时器放在每个客户端连接中。时钟不起作用,直到我关闭我的winform(我不知道为什么)。有什么特别的东西,我应该知道线程中的计时器?

这是我的计时器代码:

timer1.Interval = 1000;
timer1.Tick += new EventHandler(timer_Tick);
timer1.Enabled = true;
timer1.Start();

2 个答案:

答案 0 :(得分:4)

您可能会尝试使用System.Threading.Timer,它基本上是一个单独的线程中的计时器。您也可以考虑使用从未触发的WaitHandle,然后使用WaitOne(1000, false)等待一秒钟。

答案 1 :(得分:0)

试试这个:

public void EnableTimer()
        {
            if (this.InvokeRequired)
                this.Invoke(new Action(EnableTimer));
            else
                this.timer1.Enabled = true;
        }