【发布时间】:2015-06-28 11:01:08
【问题描述】:
我正在用 C# 设计一个工业硬件控制程序,它将通过串行端口一次运行 72 小时。
在伪代码中,我想要做的是这样的:-
while(true) {
TalkToSerialPort1();
WaitForXHours(3);
TalkToSerialPort2();
WaitForXHours(1);
// etc
}
我将此代码放在与我的主控制台或 GUI 程序不同的线程中,并且必须按程序运行
似乎Thread.Sleep() 很长一段时间似乎毁了我的一天!我正在寻找一种可靠的长时间睡眠方式。
任何信息都会有所帮助。
【问题讨论】:
-
此链接可能对您有所帮助 [stackoverflow.com/questions/5424667/… [1]: stackoverflow.com/questions/5424667/…
-
我认为您不应该使用 Sleep() 方法。而是使用 WaitHandle 同步线程。
-
在 72 小时结束时,程序是完成还是要重复?如果程序崩溃会发生什么?它是否需要在失败时重新启动?有很多方法可以构建它。
-
为什么这对你不起作用?它应该。当然你会有时间偏差,因为 TalkToSerialPort1 需要一些时间。
标签: c# .net multithreading