如何在C++的控制台下使用定时器

[复制链接]
查看11 | 回复1 | 2011-2-12 15:25:48 | 显示全部楼层 |阅读模式
#include

#include

#include

int count =0;
VOID CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTime)
{

count++;

printf("WM_TIMER in work thread count=%d\n",count);
}
DWORD CALLBACK Thread(PVOID pvoid)
{

MSGmsg;

PeekMessage(&msg,NULL,WM_USER,WM_USER,PM_NOREMOVE);

UINTtimerid=SetTimer(NULL,111,3000,TimerProc);

BOOLbRet;



while( (bRet = GetMessage(&msg,NULL,0,0))!= 0)

{


if(bRet==-1)

{

// handle the error and possibly exit

}

else

{


TranslateMessage(&msg);


DispatchMessage(&msg);


}

}

KillTimer(NULL,timerid);

printf("thread end here\n");

return 0;
}
int
main()
{

DWORD dwThreadId;

HANDLE hThread=
CreateThread(NULL,0,Thread,0,0,&dwThreadId);

_getch();

return 0;
}
在main()函数中,代码麻烦详细解释下,如果定时器时间到了,响应的代码写在那里?
其实不需要太懂,我只想知道,我如何使用这些代码,我将自己的代码加在那里(定时器相应后的代码,我自己写的与定时器无关的代码)

回复

使用道具 举报

千问 | 2011-2-12 15:25:48 | 显示全部楼层
响应的代码写在TimerProc函数中。这段程序主要作用就是创建一个线程(线程入口为Thread),然后线程中又启动一个计时器,每隔3秒调用一次TimerProc函数。Thread的退出条件:收到WM_QUIT或从键盘输入了一个字符。参考GetMessage说明。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行