我写了两个线程。一个线程负责发送,一个线程负责读取。
问题如下:
【1】我能不能不把读取的代码写在
private void axMSComm1_OnComm (object sender, System.EventArgs e)
这个函数中。当发送线程发送一次数据后,读取线程开始工作,一直读串口内容。可否当串口有数据后,一次性全部读取回来。【2】在第一个问题基础上,我想问一下,如果在线程中每时每刻都读取串口数据,那么还需要设置axMSComm1.RThreshold吗?因为每次要读取的数据不固定。谢谢,盼复
问题如下:
【1】我能不能不把读取的代码写在
private void axMSComm1_OnComm (object sender, System.EventArgs e)
这个函数中。当发送线程发送一次数据后,读取线程开始工作,一直读串口内容。可否当串口有数据后,一次性全部读取回来。【2】在第一个问题基础上,我想问一下,如果在线程中每时每刻都读取串口数据,那么还需要设置axMSComm1.RThreshold吗?因为每次要读取的数据不固定。谢谢,盼复
解决方案 »
- 请教Graphics 类
- 怎么让C#程序出现在桌面右上角
- 请关注!!!急救!关于DataGrid的问题!
- 怎样把DataGrid中更新的数据保存到数据库中??
- 求:用realplayer制作的播放工具,打包应该包含realplayer哪些DLL和别的文件?
- 当某台机器的某个文件夹被拷贝时,能不能通过API函数得知这一动作????
- C#如何学?怎么学?100分
- 在C#中如何实现SQL数据库的备份
- Public CrystalReport1 oRpt = new CrystalReport1(); //这个CrystalReport1是怎么建的
- oracle 数据库的迁移 有没有大神懂的?现在导入数据有问题啊?求指教
- 在线= 存储过程问题 帮帮小弟!!!!!!!!!!
- 关于在C#下调用ORACLE存储过程!
System.IO.Ports.SerialPort 类
http://www.gjwtech.com/
有不少资料
串口的每次读取数据是不确定的,但你可以加一个缓冲,将每次从串口的缓存读取的数据放到缓冲区,到读完数据时,将缓冲区的数据组织一下就行了。
(2)RThreshold,是触发串口接收的最少字节数,默认是12.0的SerialPort还是挺好的,可以去看一下,如果没有好的思路可以用Reflector将SerialPort的代码反编译,看一下微软是怎么编的~~