日期:2014-05-17  浏览次数:20841 次

如何用多线程代替定时器?
如题,最好有代码。谢谢!

------解决方案--------------------

while (true)
{
    System.Threading.Thread.Sleep(1000);
}


这样有没有啥问题?
------解决方案--------------------
引用:

while (true)
{
    System.Threading.Thread.Sleep(1000);
}


这样有没有啥问题?

完全没问题
------解决方案--------------------
你把timer事件放到线程去,事件最后加个线程睡眠。 System.Threading.Thread.Sleep(1000);类似
------解决方案--------------------
用一个线程循环执行呀
Thread th=new Thread(tick);
th.Start();

void tick()
{
   while(true)
   {
      System.Threading.Thread.Sleep(5000);
      //要做的事情
   }
}

------解决方案--------------------
引用:
明白了,谢谢指教。
还有一点想请教一下各位:有人说程序中最好尽量不用timer控件而提倡使用线程来代替,这种说法有没有道理呢?

这个说法有道理,在timer中如果处理过程超时,那么timer的处理函数就会再次触发,如果处理函数与执行次数相关,这种情况会导致其他错误出现,用线程就比较好控制。