我写了两个线程。一个线程负责发送,一个线程负责读取。
问题如下:
【1】我能不能不把读取的代码写在
private void axMSComm1_OnComm (object sender, System.EventArgs e)
这个函数中。当发送线程发送一次数据后,读取线程开始工作,一直读串口内容。可否当串口有数据后,一次性全部读取回来。【2】在第一个问题基础上,我想问一下,如果在线程中每时每刻都读取串口数据,那么还需要设置axMSComm1.RThreshold吗?因为每次要读取的数据不固定。谢谢,盼复

解决方案 »

  1.   

    .NET 2.0 
    System.IO.Ports.SerialPort 类
      

  2.   

    提醒一下.在处理OnComm事件的时候要先关闭中断,处理完了再打开中断不然会出现 中断嵌套的.切记切记
      

  3.   

    推荐一个网站
    http://www.gjwtech.com/
    有不少资料
      

  4.   

    (1)可以写在里面。
         串口的每次读取数据是不确定的,但你可以加一个缓冲,将每次从串口的缓存读取的数据放到缓冲区,到读完数据时,将缓冲区的数据组织一下就行了。
    (2)RThreshold,是触发串口接收的最少字节数,默认是12.0的SerialPort还是挺好的,可以去看一下,如果没有好的思路可以用Reflector将SerialPort的代码反编译,看一下微软是怎么编的~~