处理消息太慢,导致生涩,无响应的用户界面 - 如何使用多个线程来缓解这种情况?

Sho*_*og9 3 c++ windows winapi multithreading message-queue

我无法让我的应用响应用户操作.因此,我想在多个线程之间拆分消息处理.

我可以简单地创建多个线程,从所有线程中读取相同的消息队列,并让哪个线程能够处理每个消息?

如果是这样,怎么办呢?

如果没有,你能提出另一种解决这个问题的方法吗?

Mar*_*som 13

您不能有多个与消息泵或任何UI元素交互的线程.那种方式就是疯狂.

如果有很长的处理任务可以用于工作线程,那么你可以这样做,但是你必须使用另一个线程安全的队列来管理它们.

  • 疯狂当然是使用非线程安全的代码的最终结果.请原谅我粗暴的尝试,使我的写作更有趣. (4认同)