说明:下面程序为发送数据后,开始监控有无返回值,超时后报警,这个超时监控为单独开启一个线程,并未影响其他线程的操作,
public bool SendMsg(string msg)
{
serialPort.Write(msg);
Task task = new Task(TimeOutInspect);
task.Start();
return true;
//发送完之后阻塞线程等待,鼠标等待状态
}
public void TimeOutInspect()
{
while ((!sendSuccess) && count < 100)
{
Thread.Sleep(100);
count++;
}
if (count >=100)
{
GlobalVals.logServer.DispProcess("发送" + "返回数据超时!", "Alarm");
sendSuccess = false;
}
else
{
sendSuccess = false;
}
count = 0;
}