请问怎么样延时、暂停

Jah1919 2005-12-09 04:39:47
1、我用TimeOut延时没用,请问还有没有其它办法延时
2、有没有暂停命令,即程序运行一段后我按一键可暂停,按继续后可在暂停点继续程序的进行
...全文
203 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wizardqi 2005-12-15
  • 打赏
  • 举报
回复
第一个问题解法太多,楼主可根据实际情况选择Sleep,即使使用定时器也未尝不可。
第二个问题:假如你的程序的主干线程(这里指真正的事务线程而不一定是主线程)是循环性的作业,你可以使用事件(Event),程序初始化时创建一事件并初始化为触发,在每次执行事务前使用
WaitForSingleObject(...,INFINITE)检测事件是否触发,如果是继续否则它会一直等待。这样就可以通过该事件的触发控制事务线程的执行。当然如果是顺序结构的事务,就需要分段插入WaitFor...
或者在大作业中插入WaitFor...。
Jah1919 2005-12-14
  • 打赏
  • 举报
回复
谢谢各位。我是用程序控制设备,但在线程中想中断线程的进行,该怎么处理
qizhanfeng 2005-12-13
  • 打赏
  • 举报
回复
delay
Jah1919 2005-12-12
  • 打赏
  • 举报
回复
谢谢各位,但我的第二个问题还是没解决

2、有没有暂停命令,即程序运行一段后我按一键可暂停(暂停点可以任意选择程序运行到一时刻),按继续后可在暂停点继续程序的进行
Tensionli 2005-12-12
  • 打赏
  • 举报
回复
sleep(2000); //2000ms
StealDream 2005-12-12
  • 打赏
  • 举报
回复
干嘛要这么做呢?
你想让程序达到什么样的暂停?连鼠标键盘输入都不响应吗?
那这个程序还能被你控制吗?

我的理解,如果程序不做任何操作的时候他本就应该是暂停的。并没有占用CPU。

如果程序须要持续执行任务而且任务写在Idle事件中,那么切换Idle 事件就可以了,如果任务在线程中执行则把线程挂起就可以了。
哦,对了,也可以把主线程挂起啊,嘿嘿,没碰到过这样的问题。
kuki84 2005-12-09
  • 打赏
  • 举报
回复
没什么特殊需要的话,sleep就成了。
woshihaoge 2005-12-09
  • 打赏
  • 举报
回复
直接就用Sleep多好啊

sleep是个API涵数,具体你可以查一下怎么用
smiler007 2005-12-09
  • 打赏
  • 举报
回复
sleep()
kingzhang 2005-12-09
  • 打赏
  • 举报
回复
sellp 不行吗??@@
阿虎 2005-12-09
  • 打赏
  • 举报
回复
给你一个函数
procedure Delay(msecs:integer);
var
FirstTickCount:LongInt;
begin
FirstTickCount:=GetTickCount;
repeat
Application.ProcessMessages;
until ((LongInt(GetTickCount)-FirstTickCount) >= LongInt(msecs));
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
Delay(5000);
end;

1,184

社区成员

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

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