背景:
- vs2017开发桌面应用程序,点击按键处理耗时任务,比如一个按钮按下进入循环处理,另外一个按钮按下,退出循环,当进入循环时,界面会卡死,不能进行操作
解决方法:
- 1、创建窗口消息处理函数:
void DoEvents()
{
MSG msg;
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
DispatchMessage(&msg);
TranslateMessage(&msg);
}
}
- 2、在循环体内调用DoEvents方法:
while (data_flag)
{
USBDevice->BulkOutEndPt->WaitForXfer(&outOvLap, 10);
USBDevice->BulkInEndPt->WaitForXfer(&inOvLap, 10);
for (int i = 0; i < 100; i++)
{
printf("%d, ", inBuf[i]);
}
printf("\n data transfer complete\r\n");
DoEvents();
}
本文介绍在使用VS2017开发桌面应用时,如何通过创建窗口消息处理函数并调用DoEvents方法,解决在执行耗时任务时导致的界面卡死问题,确保用户交互流畅。
1658

被折叠的 条评论
为什么被折叠?



