从串行读取的线程停止工作

时间:2019-07-03 13:44:41

标签: .net visual-studio c++-cli

上周,我的程序运行良好,有一个线程专用于读取从串行端口(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;
    }
}

0 个答案:

没有答案