上周,我的程序运行良好,有一个线程专用于读取从串行端口(3D打印机)传递到计算机的字符串。我在其他区域对我的代码做了一些细微的修改,但没有修改此线程以使我记忆犹新。该线程的目的是不断读取打印机发送到计算机的消息,并确定该消息是否确实“正常”。收到确认后,它将sendMessage值从0更改为1。
当我开始second测自己的时候,我添加了多个检查作为冗余。此外,这在Visual Studio 2019更新后立即停止工作,因此我不确定它是否与此有关。任何帮助将不胜感激。
private: void ReadFromSerial()
{
// Initializes cancel function as false
cancelPrint = 0;
// Reads data while printer is connected
try
{
while (this->serialPort->IsOpen)
{
if (cancelPrint == 1)
{
MessageBox::Show("Closing read loop due to cancelPrint = 1");
break;
}
String^ ok = "ok";
String^ message = this->serialPort->ReadLine();
if ((this->serialPort->ReadLine() == ok) || (this->serialPort->ReadLine() == "ok") || (message == "ok") || (message == ok))
sendMessage = 1;
}
MessageBox::Show("Port in read no longer open");
}
catch (Exception^ e)
{
MessageBox::Show("Unknown error in read thread");
cancelPrint = 1;
}
}