很简单的一个定时器,win7下总出现“未响应”,xp下没问题。

来源:互联网 发布:限制网络流量的软件 编辑:程序博客网 时间:2024/04/28 13:59
很简单的一个定时器,win7下总出现“未响应”,xp下没问题。

用vc做一个很简单的程序,基于对话框,在OnInitDialog()中添加了一个定时器:
C/C++ code
?
1
SetTimer(1,100,NULL);


然后在定时器函数OnTimer 里添加如下代码:
C/C++ code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void CTest2Dlg::OnTimer(UINT nIDEvent) 
{
    if (1==nIDEvent)
    {
        KillTimer(1);
        CDC *pdc = GetDC();
        for(int i=0;i<100;i++)
        {
            CString str;
            str.Format("%d",i);
            pdc->TextOut(20,20, str);
            Sleep(100);
        }
        ReleaseDC(pdc);
        AfxMessageBox("over");
    }
    CDialog::OnTimer(nIDEvent);
}


功能很简单,就是在对话框里不断显示数字,从0到99,但显示到30多的时候,就会出现”未响应“的假死状态,没有反应,等一会就可以了。如图所示:


在WIn7 下出现此问题,在XP下没有此问题。大家说说是什么原因呢?
0 0