怎样唤起sleep了的线程?

Tronnin 2005-09-29 01:44:38
有这么一个线程,执行体是这样的
procedure TTestThread.Execute;
begin
while not Self.Terminated do
begin
Windows.Sleep(60000); // 1 minutes

Self.DoSth;
end;
end;

就是每隔一个分钟做点事,

怎样在它1分钟Sleep的时候,打断Sleep,提前一次做Self.DoSth;

说白了,就是如何唤起slept thread


...全文
271 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tronnin 2005-09-30
  • 打赏
  • 举报
回复

感谢 sdzeng(大头鸟)

sdzeng 2005-09-29
  • 打赏
  • 举报
回复
找到几篇帖子:
http://61.186.252.131/Expert/topic/1002/1002079.xml?temp=.7805292
http://61.186.252.131/Expert/topic/2287/2287143.xml?temp=.6874658
http://www.book23.com/data/web5304/20050228/20050228__3584129.html
lyre 2005-09-29
  • 打赏
  • 举报
回复
操作系统原理。进程执行Sleep时,由于时间未到,处于“未就绪”队列中。收到一个消息后,满足执行条件,就应该挪到“就绪”队列中。
sdzeng 2005-09-29
  • 打赏
  • 举报
回复
线程休眠:SleepEx(xx,true)
线程唤醒:QueueUserAPC
Tronnin 2005-09-29
  • 打赏
  • 举报
回复
什么样的理论 :)
lyre 2005-09-29
  • 打赏
  • 举报
回复
理论上给这个线程发个随便什么消息就可以。你可以试一下。
lostmyway 2005-09-29
  • 打赏
  • 举报
回复
我也不知道
lostmyway 2005-09-29
  • 打赏
  • 举报
回复
how?
xixuemao 2005-09-29
  • 打赏
  • 举报
回复
上个闹铃!

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧