如何在c++里实现每隔几秒进行一次动作?

suncs2001 2007-04-10 10:17:20
不是在mfc里,有没有库函数等可以实现这个功能
...全文
733 点赞 收藏 18
写回复
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingwsh 2010-11-23
初学者路过学习。对时序控制有兴趣。
回复
cissyo 2007-05-07
一个线程计时,一个线程运算
回复
liuyaoyou 2007-05-06
用循环吧,循环个几秒……
回复
gishx 2007-05-06
在循环中加入延迟函数delay就行了,delay的参数是毫秒
回复
pnz_fox 2007-05-06
还有,上面的东西应该放在while (TRUE) {}里 或者放在获取消息条件之后的else {}里,既没有消息则处理循环计时
回复
pnz_fox 2007-05-06
int iDelay;
int iTickCount = GetTickCount();
static int iTickTrigger = 0;

if (iTickCount > iTickTrigger) //每隔iDelay数Count计数的时候就做你的事情

{
iTickTrigger = iTickCount + iDelay;
dosomething();
}

我想楼主是说这个东西 ,
回复
believefym 2007-05-05
sleep是行不通的,它只能暂停程序运行时间,暂停的时候,程序是不能运行其它的内容;
----------
"每隔几秒进行一次动作"
sleep不是很符合要求吗?又没说有其他操作
回复
liqiang123abc 2007-05-05
"sleep是行不通的,它只能暂停程序运行时间,暂停的时候,程序是不能运行其它的内容,"


难道就不能在矮开一个线程?

这样就可以在暂停的时候,运行其它的内容了
回复
cangwu_lee 2007-05-05
Timer
回复
toryhector 2007-05-02
但任务的话做空循环就可以了

do(1)
{
act();//你的动作
delay(time);//等待
}
delay(int t)
{ t=t*10000;
for(int i =0;i<t;i++)
;
}
回复
mochen5460 2007-04-11
嵌入汇编语句,使用定时器中断实现
回复
bidepan2023 2007-04-11
#include <iostream>
#include <ctime>
using namespace std;

void main()
{
int lastTime = time(0);
int thisTime;
const int elapsed = 3; // sec
while (true)
{
thisTime = time(0);
if (thisTime - lastTime > elapsed)
{
cout << "DoSomething!" << endl;
lastTime = thisTime;
}
}
}
回复
roger_77 2007-04-11
Boost.Asio异步方式处理,使用boost::asio::deadline_timer 对象
回复
凌殿Y_ST 2007-04-11
hzhxxx(程序方程)
====================
sleep是行不通的,它只能暂停程序运行时间,暂停的时候,程序是不能运行其它的内容;

bidepan2023()
====================
这个方法可以,一般主函数中应有 switch...case... 函数体;达到程序的并行方式控制;
回复
Jim_King_2000 2007-04-11
lz到底需要实现什么样的东西?
回复
wangzhangyong411 2007-04-10
MFC 用SetTimer, 其他地方可以象一楼那样做,一个循环+Sleep

如果不嫌麻烦 可以自己写一个SetTimer的类,不是很难,如果有兴趣可以自己去写一个

只要返照MFC就可以了

回复
zenny_chen 2007-04-10
如果用MFC的话可以利用定时器。
SetTimer()
回复
hzhxxx 2007-04-10

这个可能都需要操作系统支持,比如使用 Sleep 函数

for(;;)
{
//do others
Sleep(1000 * second);
}
回复
发动态
发帖子
新手乐园
创建于2007-09-28

3.2w+

社区成员

C/C++ 新手乐园
申请成为版主
社区公告
暂无公告