看侯先生的《mfc深入浅出》中提到每个线程只能被照顾20ms
那如果我在一个线程中利用SetTimer(1,1,NULL)来定时读取数据 我能不能实现1ms定时读取?谢谢高手

解决方案 »

  1.   

    很难说。
    没有看过《mfc深入浅出》, 但是windows不是实时系统。所以,任何定时操作都只是一个大概。譬如,你设定时Nms, 系统会在Nms之后返回,不是正好就是Nms。
      

  2.   

    恩 我知道也可能有误差  
    我现在想知道 在每个普通线程只能被照顾到20ms的情况下
    是不是能实现1ms左右的定时高手救命
      

  3.   

    Windows是抢先多任务操作系统,随机性很大,你可以看看机械工业出版的《Windows操作系统原理》,上面对Windows的进程调度算法有很详细的解释。
      

  4.   

    你即使设置了1MS的定时器,也只能代表1MS后会产生定时器消息,至于该消息何时被系统处理,就得看当时的系统运行环境了!!!  消息是要排队等候处理的!!
      

  5.   

    设置1ms的定时器是没有用的,由于pc定时器硬件的限制,定时间隔最高在55ms左右。
      

  6.   

    我觉得你如果要用到线程的话,就没有必要使用定时器,因为线程完全是后台的处理程序,你可以把你的通信的掩码设置成TV_RCHAR(好像是这么写)就是把你的线程写成接收到数据的时候触发就完全可以了。
        如果你要使用定时器的话,就可以完全抛开线程的约束了,然后在OnTimer中实现你的目的就可以了。
        不知道这样可不可以实现的目的。线程本身就是后台处理的。
      

  7.   

    我是想利用线程+QueryPerformanceFrequency /QueryPerformanceCounter 来实现定时 至于timer我是想了解一下原理。听这位老兄提到有触发,(小弟是个菜鸟)不知道是什么东西能否说详细点。实在很急 谢谢,感激万分在线等待