背景:
- 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();
}