因此通常只有主线程才能访问MFC应用程序中的GUI。
然而,这是法律还是只是推荐?如果我通过关键部分确保只有一个线程访问GUI中的某个对象,那么它可以吗?或者如果MAIN线程访问GUI的一部分而另一个线程访问一个部分,则是一个问题。即使这两个对象不相互影响?
我问的原因是因为如果我可以从另一个线程访问GUI,这会简化我对应用程序的重写。
答案 0 :(得分:1)
MFC编程很难,而不试图处理这类事情。而是使用PostMessage将UI相关处理放到主线程上。
答案 1 :(得分:1)
我曾经认为它几乎被禁止从MFC中的工作线程访问GUI,这是一个灾难的处方。但是最近我了解到,如果你知道自己在做什么,这并不是一个很难的规则,你可以使用工作线程来访问GUI。在Win32 Multithreaded Book中,提供了一个完全在工作线程中绘制的“自动动画控件”的示例。
如果我没记错的话,作者几乎说了同样的话,如果你在合适的地方有关键部分,你就可以安全地访问GUI线程。 MFC本身不这样做的原因是出于性能原因。