运行定期任务

时间:2014-04-29 08:19:51

标签: c# task periodic-task

我正在开发一个定期向设备发送消息的c#应用程序。

第一个问题:运行定期发送消息的函数(每1秒)的最佳方法是什么?

第二个问题:有时我想停止定期请求,运行一段代码,然后再次启动定期请求。 实现这种机制的最佳方法是什么?

很明显,定期请求应该在另一个线程中运行。

在运行"代码块"之前,停止定期请求并在代码块结束时重新启动可能是一个解决方案,但我想在定期请求端实现一些智能。

3 个答案:

答案 0 :(得分:0)

第一个问题:你想要一个帖子。在线程内部,您需要一个无限循环。然后检查计时器的if语句。

第二个问题:那么你想在那个循环中有一个semaphore。信号量将为您阻止代码,然后在准备好后唤醒它。


   while(true)
   {
      check semaphore

      if one second has passed 
         then send message.
   }

答案 1 :(得分:0)

答案 2 :(得分:0)

你应该看Threading Timer