[学习记录]C++定时器功能的实现

来源:互联网 发布:cstpcd数据库 编辑:程序博客网 时间:2024/06/05 16:28

Target : 在特定时间或者是每隔一段时间就执行一次某程序。

C++实现。


以下是实现代码。

main.cpp

/********************************************************************created:2014/03/17created:17:3:2014   17:13filename: E:\Code\timetest\timetest\main.cppfile path:E:\Code\timetest\timetestfile base:mainfile ext:cppauthor:JellyChenpurpose:*********************************************************************/#include <time.h>#include <iostream>#include <windows.h> // 这个头文件只是为SYSTEMTIME存在using namespace std;int main(){UINTiCompCount= 0;// 时间判断time_tsystimeStart, systimeEnd;// 时间UINTrateSec= 5;// 频率,几秒一次inti= 0;// 监视循环执行次数time(&systimeStart);// 获取初始时间while(1){time(&systimeEnd);// 获取当前时间// 时间判断{// 需要在指定时间执行程序则将初试时间设为定值即可if((systimeEnd - systimeStart) % rateSec == 0)// 5秒执行一次程序iCompCount++;elseiCompCount = 0;}// 执行if(iCompCount == 1){//////////////////////////////////////////////////////////////////////////// TODO :// 测试,输出现在时间SYSTEMTIME NowTime;GetLocalTime(&NowTime);printf("%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d\n", NowTime.wYear, NowTime.wMonth, NowTime.wDay, NowTime.wHour, NowTime.wMinute, NowTime.wSecond, NowTime.wMilliseconds, NowTime.wDayOfWeek);cout << "PassTime = " << systimeEnd - systimeStart << endl;cout << i << endl;//////////////////////////////////////////////////////////////////////////}Sleep(10);// 循环太快,CPU占用资源相当大,必须加时间控制,这只是简单的用sleep加以限制i++;// 测试循环次数}return 0;}





0 0
原创粉丝点击