日期:2014-05-17  浏览次数:20809 次

SerialPort串口DataReceived事件中处理数据耗时太久
使用C#SerialPort串口类,整个包一次接收到1024个字节,其中是4个数据帧的返回的数据,(每帧是256字节,我现在去掉了每帧之前的5个字节,从第6个字节到255是正文数据区域,256是校验位)我现在用循环把数据区域提取出来解析好了并存进数据库中,但耗时约半分钟(28s),怎么才能把这个时间缩短?望大神不吝赐教!!!

------解决方案--------------------
放一些 stopwatch,看看是哪里耗时。按理说,不应该花费那么多时间,是不是硬件上花了很多时间。
------解决方案--------------------
把你的每帧数据解析出来的看成一个对象 如Student ,他有很多属性如 stuNo,stuName;
List<Student> list = new List<Student>();
创建一个线程专门用于保存数据,不停的判断 list中是否有对象 如Student ,如果有就插入数据库,由于是另外起的一个线程,所以写入数据库应该不影响 你串口