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

suncs2001 2007-04-10 10:17:20
不是在mfc里,有没有库函数等可以实现这个功能
...全文
1470 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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
  • 打赏
  • 举报
回复 2
#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);
}

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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