我要做个实时监控东西,通过定时器控制,每20ms调用一次更新函数,然后调用this->Invalidate(false);通过OnDraw刷新页面;
但是画面无法正常刷新,而是卡住了,不知怎么回事?
部分代码:
case ID_TIMER_ONLINE:
if (bPipeOpen)
{
dealDataFromPipe(); //此函数更新需要显示的内容;
this->Invalidate(TRUE);
}
break;
十分感谢!!!
但是画面无法正常刷新,而是卡住了,不知怎么回事?
部分代码:
case ID_TIMER_ONLINE:
if (bPipeOpen)
{
dealDataFromPipe(); //此函数更新需要显示的内容;
this->Invalidate(TRUE);
}
break;
十分感谢!!!
另外,即使操作系统可以,监控的人也来不及看啊
因此,需要LZ重新设计界面显示策略
另外,用调试方式运行程序,不设置断点,程序卡住时用调试功能暂停程序,根据调用堆栈的信息找出正在执行哪里的代码。
实时监控的程序最好不要用Invalidate刷新界面,可以用GetDC然后直接绘制界面,另外最好能判断出需要更新的区域,尽量用局部更新的方式。
如果需要20ms的精度,建议使用CreateWaitableTimer()效果会更好