每隔一段,时间执行某个函数

page10 2005-03-04 09:51:38
如何写
能够做到每隔一段,时间执行某个函数
...全文
150 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongpy 2005-03-04
  • 打赏
  • 举报
回复
用API实现:
#include <windows.h>
#include <iostream>
using namespace std;

const UINT uiTimerID = 10;

VOID CALLBACK FooTimerFun( HWND, UINT, UINT, DWORD )
{
static int nCount = 0;
cout << "Timer Function , nCount = " << nCount ++ << endl;
if( nCount > 5 )
PostQuitMessage(0);
}

int main()
{
MSG msg;
SetTimer(NULL, uiTimerID, 2000, FooTimerFun);
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
KillTimer(NULL, uiTimerID);
return 0;
}
nicknide 2005-03-04
  • 打赏
  • 举报
回复
Unix下面也是如此处理
不过和win下面的参数不同,而且全是小写:sleep(s);
WIN:Sleep(s,ms)
具体类型忘记了,s 秒 ms毫秒

想顺带问下,UNIX下怎么样让时钟信号精确到毫秒级别?

nicknide 2005-03-04
  • 打赏
  • 举报
回复
那就使用Sleep()
开双线
page10 2005-03-04
  • 打赏
  • 举报
回复
可是
我的工程是CONSOLE类型.
我能用WM_TIMER消息,OnTimer等玩意吗?

yuchengliu 2005-03-04
  • 打赏
  • 举报
回复
使用定时器!
pinel 2005-03-04
  • 打赏
  • 举报
回复
classwizard一个WM_TIMER消息,在生成的OnTimer中写处理代码。SetTimer()计时器开始,KillTimer()中指计时器。
dongpy 2005-03-04
  • 打赏
  • 举报
回复
比较底层的实现方法,可参考:

http://community.csdn.net/Expert/topic/3810/3810996.xml?temp=.3305933
dongpy 2005-03-04
  • 打赏
  • 举报
回复
用定时器喽。
不过要看你是在什么硬件平台和软件系统了。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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