-2

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

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

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

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

在运行“代码块”之前,停止定期请求并在代码块末尾重新开始可能是一种解决方案,但我想在定期请求方面实现一些智能。

4

3 回答 3

0

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

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


   while(true)
   {
      check semaphore

      if one second has passed 
         then send message.
   }
于 2014-04-29T08:22:16.783 回答
0

您正在寻找窗口服务。窗口服务将解决您的问题。检查这些链接。

http://www.aspdotnet-suresh.com/2011/06/creating-windows-service-in-c-or.html

http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C

http://msdn.microsoft.com/en-us/library/zt39148a%28v=vs.110%29.aspx

于 2014-04-29T08:25:22.737 回答
0

线程计时器是你应该看的

于 2014-04-29T08:26:31.137 回答