当前位置:编程学习 > C#/ASP.NET >>

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时,又有其他线程进来访问 --------------------编程问答--------------------
引用 1 楼  的回复:
你是用线程控制的吗,如果是就要注意同步,可能你现在没有同步,在sleep时,又有其他线程进来访问



我没有用线程控制,就是收发数据作为一个方法,在事件中调用而已 --------------------编程问答-------------------- 楼主,你怎么会用两个serialport的啊? --------------------编程问答--------------------
引用 3 楼  的回复:
楼主,你怎么会用两个serialport的啊?


我要控制两个串口,所以就用了2个serialport啊 --------------------编程问答-------------------- 自己顶一下,求高手帮忙看看啊!!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,