TTimer 与线程有啥 区别 用TTimer有啥优势?用线程又有啥优势?

解决方案 »

  1.   

    TTimer是基于消息的.它实际上处理的是WM_TIMER,另外它是在主线程的消息循环中.
    WM_TIMER和WM_PAINT都属于低优先级的消息,在消息队列中同时只能有一个WM_TIMER消息,
    假如说你用Timer做一个计时器,如果你的主线程又比较繁忙,这是在你的主线程中有一个还没来得及
    处理的WM_TIMER消息,这是又接受到一个,那么之前那个没被处理的WM_TIMER消息会被新的替换掉.线程和主线程都是时间片轮回的,所以主线程在繁忙到时间了也得切换给其他线程执行.
      

  2.   

    http://topic.csdn.net/u/20100902/17/4c44feac-91a0-4977-8fe5-5f5a6a8469d2.html
      

  3.   

    这个有理,用线程的话,精度会不TTimer精度高。
      

  4.   

    我觉得就是一回事情。
    小区别还是有点。
    Timer 需要主线程的时间片(也就是消息),
    Thread 是进程的时间片。
    简单证明。在 Console 程序下,你很难控制 Timer ,要控制的话,需要一些手法。
    但是,Thread 就可以。
    在 Wind32 APP 下,一回事情。
      

  5.   

    两回事情,而且区别很大。    1、Timer是主线程(单独)中的产物,有着计时的事件,使用时时似乎独立计时,非也。它受到主线程代码执行的影响很大,甚至停止计时。它的执行占用,主线程的时间,实质上它是排队式的计时器。    2、Thread是双轨制(多轨)的产物,两个线程执行时互不相干。由CPU分时段,各自执行代码。
      

  6.   

    timer触发而执行的定时器事件函数,它的执行是在主线程,如果它执行很久而且没有随时application.processmessages,则其它事件没机会得到触发线程则不影响主线程的各种事件的触发
      

  7.   

    区别就不说了,大家都说了
    TTimer优势就是用着方便,线程的优势就是精度高