我正在开发一个定期向设备发送消息的c#应用程序。
第一个问题:运行定期发送消息的函数(每1秒)的最佳方法是什么?
第二个问题:有时我想停止定期请求,运行一段代码,然后再次启动定期请求。 实现这种机制的最佳方法是什么?
很明显,定期请求应该在另一个线程中运行。
在运行"代码块"之前,停止定期请求并在代码块结束时重新启动可能是一个解决方案,但我想在定期请求端实现一些智能。
答案 0 :(得分:0)
第一个问题:你想要一个帖子。在线程内部,您需要一个无限循环。然后检查计时器的if
语句。
第二个问题:那么你想在那个循环中有一个semaphore。信号量将为您阻止代码,然后在准备好后唤醒它。
while(true)
{
check semaphore
if one second has passed
then send message.
}
答案 1 :(得分: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
答案 2 :(得分:0)
你应该看Threading Timer