开辟多个串口,假如一个串口接收到数据,接着将数据到SQL SERVER查找有没重复数据,没有就插入,并根据情况回复下位机。由于带宽的问题,往往处理SQL处理的时间有时占到4-5秒。但是下位机是发出数据包1秒后接收不到回复就重发。这样会造成串口缓存区乱。现在想在串口处理的线程里再开一个数据库处理的线程。应该怎么弄??需要注意些什么??谢谢。。
解决方案 »
- 请问Use Multi-Byte Character Set编码的程序怎么调用unicode编码的dll
- 截获ARP响应包的问题
- 一个父窗口,一个子窗口,怎么设置子窗口在父窗口的上面显示?50分!
- GetTextExtent的问题
- 一个关于鼠标点击的问题,谁能回答立即给分,不够再加。
- 问题太简单,所以只给了50分,谅解
- 請問setwindowsHOOkEx()中的第三個參數也就是dll的默快句柄怎麼得到??
- MFC中关于修改access数据库数据出现的问题
- 如何获得IWebBrowser2的Internet Explorer_Server窗口句柄
- 如何让Serialize写入的数据为文本而不是二进制数据!!
- 派生类中的函数重载了父类中的函数的问题
- CComboBox1.SetWindowText("123456");显示空白?
你弄个全局的队列,有且仅有一个 ,g_List;
在开两个线程, ReadFromCom , WirteToDB
ReadFromCom 就把从串口读到的数据,直接存入g_List , 写完g_List ,就马上回复下位机
WirteToDB 读g_List,如果有数据,按照你的逻辑 ,判断是否往数据库写。
记住 ReadFromCom 和 WirteToDB 操作 g_List 要加锁 ,否则乐子可大了。