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

寻找高人帮忙,串口发送问题

同时开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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,