我需要使用std::async
在其他线程中运行消息循环,是否可以从主线程获取消息?你可以给一些例子吗?
第二个问题:我不需要调用wndproc
,我只需要获取消息并避免“程序不响应”,我是否需要调用dispatchmessage()
?
答案 0 :(得分:1)
每个线程管理自己的消息队列。如果您需要主线程的消息,则主线程必须获取它们并将它们发布给您。但这听起来完全会失败。
听起来像您真正想要的是切换线程的位置。让主线程运行您的消息泵,并在另一个线程上进行密集处理。
对于DispatchMessage
,如果没有窗口,可以不用它。但是,如果这样做,则应调用它。您必须处理窗口消息才能显示响应,并且隐藏了这样做的一些细节。