2

私のプログラムは、シリアルポートを介して文字列を受信する必要があります。問題は、入力がないときにプログラムがReadLineでスタックすることです。SP.ReadLineによって行が読み取られたときに関数startReadingを呼び出す方法はありますか?

void GetInput()
{
        SerialPort SP = new SerialPort();
        SP.PortName = "COM3";
        SP.Open();
        string Line = string.Empty;
        While(Line == "")
         {
                    Line = SP.ReadLine();
                    Application.DoEvents();
         }
          StartReading();
}

void StartReading()
{
}
4

1 に答える 1

0
    private void GetInput()
    {
        SerialPort SP = new SerialPort();
        SP.PortName = "COM3";
        SP.DataReceived += new SerialDataReceivedEventHandler(SP_DataReceived);
        SP.Open();
    }

    private void SP_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
        SerialPort serialPort = (SerialPort)sender;
        string line = serialPort.ReadLine();
        StartReading();
    }

    private void StartReading()
    {
    }
于 2012-05-24T14:27:27.593 に答える