做定时器用Sleep()有什么缺点么?
int iHourDiff=0;
if (CompareTime(strNowTime, strClearTime))
{
//判断清理时间是否大于当前时间, 若大于等于, 则时间差为两者相减
iHourDiff = strClearTime.hour - strNowTime.hour;
}
else
{
//若小于, 则时间差为两者相减再加上24小时
iHourDiff = 24+strClearTime.hour - strNowTime.hour;
}
if (iHourDiff > 1)
{
//如果时间差大于1, 则等待时间差-1个小时
cout<<"等待"<<(iHourDiff-1)<<"个小时..."<<endl;
//时间差-1再乘以1个小时的毫秒数,就是需要等待的小时
Sleep((iHourDiff-1) * 3600000);
}
else
{
Sleep(1000);
//若当前时间与定时器时间相等
if (strClearTime.hour == strNowTime.hour && strClearTime.minute == strNowTime.minute && strClearTime.second == strNowTime.second)
{
//执行函数, 清理日志
ProcessFunction(sMouduleFileName, sConfigFileName);
}
}