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

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

C++实现。

 

以下是实现代码。

main.cpp

 

/********************************************************************
	created:	2014/03/17
	created:	17:3:2014   17:13
	filename: 	E:\Code\timetest\timetest\main.cpp
	file path:	E:\Code\timetest\timetest
	file base:	main
	file ext:	cpp
	author:		JellyChen
	
	purpose:	
*********************************************************************/
#include <time.h>
#include <iostream>
#include <windows.h> 	// 这个头文件只是为SYSTEMTIME存在
using namespace std;

int main()
{

	UINT			iCompCount		= 0;			// 时间判断
	time_t			systimeStart, systimeEnd;		// 时间
	UINT			rateSec			= 5;			// 频率,几秒一次
	int				i				= 0;			// 监视循环执行次数
	time(&systimeStart);				// 获取初始时间
	while(1)
	{
		time(&systimeEnd);	// 获取当前时间

		// 时间判断
		{
			// 需要在指定时间执行程序则将初试时间设为定值即可
			if((systimeEnd - systimeStart) % rateSec == 0)	// 5秒执行一次程序
				iCompCount++;
			else
				iCompCount = 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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值