C#串口读数据DataReceived监听不能快速反应
各位老师同仁大家好,我是一个新手,今天学习C#串口时候碰到了一个问题,还望大家指导,先谢谢了。
具体问题我在windowsForm中用一个Button控件点击一下发送数据,用TEXTBOX显示读取的下位机数据。但是问我发现SerialPort中的监听事件DataReceived反应不够积极,有时候Button点一次TEXTBOX有数据,有时候点多次才有数据。跟踪了一下DataReceived发现有时候可以进到事件中,有时候进不去。
不知道我描述的问题是否清楚,再一次感谢大家的指导,代码如下:
public static void Send_Data()
{
byte[] B = new byte[3] { 0x4d, 0x30, 0x0d };
Com_Port.Write(B, 0, 3);
}
private static void Com_Port_DataReceived(object sender ,SerialDataReceivedEventArgs e)
{
Thread _readThread;
_readThread=new Thread (str_Recive);
_readThread.Start();
}
public static void str_Recive()
{
if (Com_Port.IsOpen == true)
{
byte[] readByte = new byte[Com_Port.ReadBufferSize];
int count = Com_Port.Read(readByte, 0, Com_Port.ReadBufferSize);
strbuffer = System.Text.Encoding.ASCII.GetString(readByte, 0, count);
}
else
{
TimeSpan waitetime = new TimeSpan(0, 0, 0, 50);
Thread.Sleep(waitetime);
}
}