例如我在程序中的主线程使用定时器,那么定时器事件是由主线程执行,还是由定时器自己创建线程执行?
感觉应该是主线程执行,但是不太确信,请大虾指点确认一下。
4 个解决方案
#1
是主线程,分给我吧
#2

定时器完全是在进程的主线程中工作,受消息循环的控制,只是在需要的时候给消息队列插入一条消息,如果上一次触发时的消息没有处理完,即使时间到了也不会在此期间触发第二次,因此精度是得不到保证的。定时器的精度不够不是因为触发的问题,而是触发后通过消息队列,到达的时候已经被延迟,如果系统不忙,这个延迟时间会很小,如果系统忙,这个延迟就无法预料了,但无论如何这个延迟是存在的,当然大部分情况下我们是能够容忍的,也能够满足日常应用,但要是进行实时通讯等定时器就不够用了。
多媒体定时器从精度上讲会好很多。
#3
定时器不是线程,它执行大函数一样 会假死
#4
主線程,定時器只是在主線程中工作執行而已。。。
#1
是主线程,分给我吧
#2

定时器完全是在进程的主线程中工作,受消息循环的控制,只是在需要的时候给消息队列插入一条消息,如果上一次触发时的消息没有处理完,即使时间到了也不会在此期间触发第二次,因此精度是得不到保证的。定时器的精度不够不是因为触发的问题,而是触发后通过消息队列,到达的时候已经被延迟,如果系统不忙,这个延迟时间会很小,如果系统忙,这个延迟就无法预料了,但无论如何这个延迟是存在的,当然大部分情况下我们是能够容忍的,也能够满足日常应用,但要是进行实时通讯等定时器就不够用了。
多媒体定时器从精度上讲会好很多。
#3
定时器不是线程,它执行大函数一样 会假死
#4
主線程,定時器只是在主線程中工作執行而已。。。