mydevice.GetDataFromDevice(g_data_in,1000); 
把这个单独做个线程,设为最高优先级呐?或者直接用驱动实现数据流读取,你要做的就是从缓冲里取数。只要缓冲够大,应该不会丢数了把?

解决方案 »

  1.   

    SetPriorityClass(hMainProcess, REALTIME_PRIORITY_CLASS );
      

  2.   

    Re:madmanahong(疯子阿虹) 
    如果我都在驱动中实现,那我就无法及时的返回界面应用层,响应按钮或者其他事件的响应。
    可能我从设备中取数据的时间很长,有时需要几分钟,如果全部作在底层,在取完数据之前,计算机都一直“死”着在。设备有缓存,不过存不了几秒钟的数据。线程优先级是怎么回事?起到甚么作用???
      

  3.   

    Re:templarzq(原谅我这一生不羁放纵爱自由,也会怕有一天会跌倒) 
    我的例子中不就是把mydevice.GetDataFromDevice(g_data_in,1000); 放在单个线程中么?
    “把这个单独做个线程,设为最高优先级呐?”是甚么意思?mydevice.GetDataFromDevice(g_data_in,1000); 实际上就是在调用驱动,和设备通讯。
      

  4.   

    SetPriorityClass(hMainProcess, REALTIME_PRIORITY_CLASS );
    不知道可行,我回去试试才知道。