我程序里面设置timer每50毫秒响应一次,请问我如果在ontimer函数中用Sleep大于50时,程序会不会出现什么问题,,代码如下:
void CInvokeOnKeyDownDlg::OnBnClickedOk()
{
SetTimer(1,50,NULL);}void CInvokeOnKeyDownDlg::OnTimer(UINT_PTR nIDEvent)
{ Sleep(100);
//do something
.... CDialog::OnTimer(nIDEvent);
}
void CInvokeOnKeyDownDlg::OnBnClickedOk()
{
SetTimer(1,50,NULL);}void CInvokeOnKeyDownDlg::OnTimer(UINT_PTR nIDEvent)
{ Sleep(100);
//do something
.... CDialog::OnTimer(nIDEvent);
}
只要你的OnTimer中的代码没有时间要求。
这样做,可能不如推迟启动计时器的时间来得更合理
因为时钟发生器的定时性,不会因为时间响应函数的延时而改变
do something每过(n+0.1+0.05)秒执行一次时间消息是在空闲时执行的