有关定时器
我用timeSetEvent定时,每100ms计一个数,然后由tcsv决定计数的个数,如tcsv=30,则定时3秒,
现在运行的结果为什么误差很大?是不是程序哪里有问题?
下面是我的部分代码
//RunDlg.cpp
{ ...
OnTime(tcsv);//tcsv个数
istc=1;
...
}
void CRunDlg::OnTime(int t)
{
CSPLCApp *app=(CSPLCApp*)AfxGetApp();
wAccuracy=app->wAccuracy;
timerID=timeSetEvent(100,wAccuracy,(LPTIMECALLBACK)PTIM,(DWORD)this,TIME_PERIODIC);
tsv=t;
}
void PASCAL PTIM(UINT uTimerID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2)
{
CRunDlg * pRunProc=(CRunDlg *) dwUser;
if(tsv==0)
{
timeKillEvent(pRunProc->timerID);
timeEndPeriod(pRunProc->wAccuracy);
pRunProc->tc[0]=1;
pRunProc->istc[0]=0;
return;
}
tsv--;
}