寻找高人帮忙,串口发送问题
同时开3个串口,并将接收到数据保存到数据库中目前用了比较死板的方法,就是为每个串口的数据接收到的事件中创建一个数据库操作
这样产生的问题是,由于数据库只有一个,会发生这个串口在读写数据库时,另外一个串口访问不了,产生数据库被锁定的错误,而且系统资源耗费严重
所以向大家寻求比较好的解决方法 --------------------编程问答-------------------- 菜鸟路过~
这个是不是可以用同步解决
--------------------编程问答-------------------- 自己顶下 --------------------编程问答-------------------- 你用的什么数据库? --------------------编程问答-------------------- 别用datareceived事件.
准备一个开始/停止按钮
开始后, 循环访问串口,期间找个位置使用system.threading.thread.sleep 和 application.doevent 释放占用的CPU时钟,
这样可以防止并发和独立占CPU.
--------------------编程问答-------------------- 写数据库操作,独立一个线程,定义一个类型,例如:
Public Class Section
Public buf as Byte()'记录当前串口数据
Public cmd as SqlCommand'记录命令
End Class
再弄个Queue(Of Section)的对象,每次收到数据,插入这个队列中,写数据库的线程,每次取队列顶端数据,写数据库,无数据则sleep(100) --------------------编程问答-------------------- 把要写的数据全部加入一个变量中,然后用单独一个线程负责向数据库写入 --------------------编程问答-------------------- 那是操作数据库的方式问题了。
补充:.NET技术 , VB.NET