C#串口编程时,读取数据必须在,串口响应事件中进行吗

2025-02-22 22:24:25
推荐回答(1个)
回答1:

  1. SerialPort_DataReceived()事件是.net提供好的很完善的实时接收串口响应的方法. 正常情况用它就可以了.

  2. mSerialPort.DataReceived += new SerialDataReceivedEventHandler(SerialPort_DataReceived); 这行代码执行后就意味着程序已经另开一线程了.它不会影响主进程的操作,也就是说不会卡死主程序.

  3.  当你不开线程直接serialPort_jmt.Read的时候如果没有串口响应来的数据那么该方法会一直等待,也就是说回卡住主程序.

  4. 这不是死循环,而是主线程等待.

  5. 如果不用SerialPort_DataReceived()事件,可以自己写线程,用线程去serialPort_jmt.Read,这样就让线程一直等待,而不会卡死主程序.

     

    有帮助请采纳,如有疑问请追问.