开发平台(Platform): (Ex: Win10, Linux, ...)
MFC
想让图形根据给予的数据连续更新画面
每一个 frame 之间希望有 interval
看起来才连续动的感觉
试过 thread, 更新画面的时候, 还是没办法动 UI, UI 是冻结的
void delay()
{
// 方法1
this_thread::sleep_for(10ms);
// 方法2
int nextTime = time(0) + secs;
while (time(0) < nextTime);
}
thread testThread(delay);
testThread.detach();
请问我那边做错了吗
有翻到很古早很古早的 sample
是用 ON_WM_TIMER() 做的
运作起来就很顺了
请问这两者之间有什么差异呢
谢谢
EDIT1
完整 code
https://pastebin.com/DEUsiG25
差异在于 MFC 不支援 thread我之前做过在 MFC 里面用 thread 更新画面,但那块画面是我自己用 OpenGL 画的,内容物与 MFC 无涉这个 thread 也可以送 message 催促 MFC 更新就是了
作者: xk4771127 (阿焦) 2019-08-08 00:18:00
没看到code不知道怎么帮忙
MFC可以透过thread更新UI啊,你要不要贴个完整的code看看
是说你可能想反了,应该是让 MFC 去更新 UI另开 worker thread 去做耗时的运算并回报进度才对
引擎是 3rd party setParameters 就是呼叫引擎里面的图形旋转 这样一讲 我这样写好像怪怪的
作者: obj 2019-08-08 22:43:00
更新ui元件要在uithread, 其他的 thread更新要用postmessage的方式到uithread
作者: xk4771127 (阿焦) 2019-08-09 01:35:00
看起来你想做成dll,需要创一个thread然后callback 给ui绘图