我需要不断检测一个数据,并且根据它的值来做出相应的操作
如果从效率上考虑,我应该使用一个timer还是使用一个线程?
希望讨论一下,帮助我思考,谢谢,要给出选择的依据哦.

解决方案 »

  1.   

    用timer吧,用线程还是得有一定的时间间隔,要不CPU耐不住
      

  2.   

    要看你对这一数据变化掌握的灵敏度要求了,一般来说,Timer已经够用了。。
      

  3.   

    你可以尝试使用timer和线程,看看哪个的效果更好
      

  4.   

    tabby(-_-! .. 内存泄漏) 
    线程和timer的区别就是灵敏度吗?我还没有想出测试的好办法,所以先来问问大家的经验timer有个坏处是,如果操作过于复杂的话会把主线程给堵住.
      

  5.   

    按楼主的意思Timer应该可以胜任了吧
      

  6.   

    hi 土星 好久不见timer 优先级比较低。 有可能达不到你的要求 用timer是会比较简单一些
      

  7.   

    timer简单易行,worker线程也没什么不可,可以让它的优先级低一些。
      

  8.   

    如果你要做的工作很复杂, 那用 TIMER可能不行, 因为它优先级很低
      

  9.   

    WM_TIMER的优先级低于本消息循环的所有其他消息
    线程的优先级默认是普通
      

  10.   

    如果工作简单,且时延小,要求精度低则用timer,否则我还是喜欢用线程
      

  11.   

    用Timer,只要时间设置合适,必线程节约系统资源。
      

  12.   

    用线程,虽然比timer复杂点,但好处肯定比timer好
      

  13.   

    晕了,大家真是莫衷一是啊
    大家考虑过的我都考虑过,主要我不清楚是timer耗费资源还是线程耗费资源,优先级一般不用考虑,我测试过就算丢一两个timer也是没有关系的.另外引入线程也增加了复杂性,各有优缺点
    不过我的主要目的还是考虑效率,不知道谁可以给出有利的佐证,谢谢大家.
      

  14.   

    你这个问题,如果有以下两种情况的,建议使用线程,否则使用Timer会更方便!1.主程序执行大量运算或IO操作。就是说主线程如果还没空闲,Timer将得不到执行,因为消息级别低2.你的Timer的回调函数(或者说你的检测数据和操作函数)会不会执行大量运算或IO操作。就是说你的Timer回调函数可能会使得程序界面无响应如果你确定不会发生以上两种情况,那么使用Timer就方便了些。在这种情况下,效率上和使用线程已经相差不远了!
      

  15.   

    Turelies(天堂鸟)
    你说的相差不远的意思是什么?
    是不是相同的代码在timer里面执行的效率始终要低于线程吗?
      

  16.   

    有没有谁知道timer在windows下面的实现细节?
      

  17.   

    好像听说一个程序只能同时开10几个timer,而线程比这个多多了吧
      

  18.   

    用线程+ 事件对象在线程中等,waitsignevent,,作完了就setevent
      

  19.   

    算了,揭贴,这几天的实验表明线程也不见得效率比timer高,特别是只有一个cpu的情况下面