请问在Delphi中的应用中启动了一个线程,如何将应用暂停0.5秒,让线程继续执行

ppdj 2004-06-22 05:53:30
(用application.ProcessMessages已经证明不行)
...全文
226 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ppdj 2004-06-23
  • 打赏
  • 举报
回复
感谢大家参与,综合myy和Oracle10g的方法,找到适合本人所要的解决方案。
Oracle10g 2004-06-23
  • 打赏
  • 举报
回复
这个行吗?(这个过程不能在线程内部使用)
procedure Delay(msec:integer);
//延时函数,msec 为微秒(千分之1秒)
var
FirstTickCount : real;
begin
FirstTickCount := GetTickCount();
FirstTickCount := FirstTickCount + msec;

While FirstTickCount > GetTickCount() do
Application.HandleMessage; //不占用 CPU 时间
end;
julong88 2004-06-23
  • 打赏
  • 举报
回复
线程内的sleep不会影响主线程
反来就不知道了
qinmaofan 2004-06-22
  • 打赏
  • 举报
回复
同意 myy。

好像在主线程中 sleep 的话,子线程也会暂停。我很久以前做过试验,不过不大记得结果了。
myy 2004-06-22
  • 打赏
  • 举报
回复
th:=TMyThread.Create(False);

if WAIT_TIMEOUT=WaitForSingleObject(th.Handle, 500) then //等待th线程执行500毫秒
//等待超时,th还在执行
else
//th在500毫秒内已经执行完毕
hthunter 2004-06-22
  • 打赏
  • 举报
回复
线程外部的sleep应该不影响线程的执行的巴?
ppdj 2004-06-22
  • 打赏
  • 举报
回复
不行,它将线程一道停止运行了
youhuiyun 2004-06-22
  • 打赏
  • 举报
回复
不明白,sleep?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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