在线程中能用Timer控件吗?我想当时间到了的时候就中断线程,该如何做?(10分)

  • 主题发起人 主题发起人 fullstrong
  • 开始时间 开始时间
F

fullstrong

Unregistered / Unconfirmed
GUEST, unregistred user!
在线程中能用Timer控件吗?我想当时间到了的时候就中断线程,该如何做?
 
可以呵!
在线程中设置一个Boolean变量不就行了吗
如果不放心的话,可以把timer放在主线程中的呵
同样方法去读这个变量就可以了!
 
问题其实与时间没有关系, 就是线程外要终止此线程的问题
此线程在一个循环中运行, 每次开始循环时检测一个全局的变量
 
在主线程中放一个timer控件,声明Boolean型的全局变量,在timer控件中判断时间,
如果时间到了设置Boolean型的全局变量为TRUE,再在线程中判断全局变量即可。
 
不行吧,线程中要接收消息(时间),要Peekmessage一个线程消息,不然的话,白忙。
你在线程Repeat的时候,只要不是block你的线程,可以不断得到时间来pan断,到时间了不就
中止就完了。
GetTickCount//得到当前时间毫秒
GetLocalTime(SystemTime: TSystemTime);
 
IMO,Timer最好还是放在主线程
 
|mainthread| |subthread|
| |
设置定时器 |
| 死循环等待事件到达
| |
| |
| |
事件到达 --------> SetEvent
| |
| 退出循环,终止纤尘
 
最好别用,用也要用方法同步它!
 
后退
顶部