线程OnExecute动态建立Timer不能够触发OnTimer事件,大家帮忙看看,为什么啊??? ( 积分: 100 )

  • 主题发起人 主题发起人 陌生
  • 开始时间 开始时间

陌生

Unregistered / Unconfirmed
GUEST, unregistred user!
设计一个对象需要在线程中动态的建立,而且对象自身需要有自动计时功能,但是在实施中发现一个奇怪的问,这个带有Timer的组件在线程的OnExecute事件中建立后不会触发设定的OnTimer事件,不知道为什么,觉得很奇怪...
QQ:23298524 在线
 
设计一个对象需要在线程中动态的建立,而且对象自身需要有自动计时功能,但是在实施中发现一个奇怪的问,这个带有Timer的组件在线程的OnExecute事件中建立后不会触发设定的OnTimer事件,不知道为什么,觉得很奇怪...
QQ:23298524 在线
 
子线程中没有消息循环,Timer 组件依赖消息循环工作,得自己在线程中创建消息队列。
 
同意楼上,你应该在Timer触发线程,而不应该在线程触发TTimer
 
to:savetime
谢谢savetime,为什么说子线程没有消息循环呢,另外为什么我在线程的其他地方建立同样的组建却可以很好的工作呢,比如说在线程的Create()中建立就可以很好的触发Timer组件的OnTimer事件。
 
在 TThread.Create 中创建的 Timer 对象,其实是在主线程中创建的。
主线程拥有消息循环因此可以正常工作。
 
再次感谢savetime,我想你说得应该是正确的,但是你可以告诉我该怎么样在线程里面建立消息循环么?谢谢
 
你循环执行某一动作,可以使用事件来处理,这个效果比timer更好,而且更容易控制
 

Similar threads

D
回复
0
查看
767
DelphiTeacher的专栏
D
D
回复
0
查看
809
DelphiTeacher的专栏
D
D
回复
0
查看
639
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部