serialport控件对数据的读取问题
strData = new byte[3];
strData[0] = 0x7E;
strData[1] = 0x06;
strData[2] = 0x20;
serialport1.Write(strData, 0, 3);
System.Threading.Thread.Sleep(100);
serialport3.Write(strData, 0, 3);
System.Threading.Thread.Sleep(100);
reData1 = new byte[4];
reData3 = new byte[4];
try
{
serialport1.Read(reData1, 0, 4);
serialport3.Read(reData3, 0, 4);
}
catch(Exception ex)
{
MessageBox.Show("COM Exception" + ex.ToString(), "Exception", MessageBoxButtons.OK);
}
break;
如上,是我用serialport控件发送并接收数据的代码,刚开始执行的30次左右是没有问题的,但是30次以后就出现软件卡机的现象,在代码中查看时,发现是serialport1.Read(reData1,0,4)这句语句出现了异常,异常信息是:cannot evaluate expression because the current thread is in a sleep ,wait or join
这是什么原因造成的呀?该如何解决呢?求高手指教啊! --------------------编程问答-------------------- 你是用线程控制的吗,如果是就要注意同步,可能你现在没有同步,在sleep时,又有其他线程进来访问 --------------------编程问答--------------------
我没有用线程控制,就是收发数据作为一个方法,在事件中调用而已 --------------------编程问答-------------------- 楼主,你怎么会用两个serialport的啊? --------------------编程问答--------------------
我要控制两个串口,所以就用了2个serialport啊 --------------------编程问答-------------------- 自己顶一下,求高手帮忙看看啊!!
补充:.NET技术 , C#