在 MFC 中,可以在工作线程中执行 UI 相关操作(绘制绘图)吗?
Posted
技术标签:
【中文标题】在 MFC 中,可以在工作线程中执行 UI 相关操作(绘制绘图)吗?【英文标题】:In MFC the UI related operation (Draw paint) can be performed in worked thread? 【发布时间】:2015-06-17 01:34:54 【问题描述】:在 MFC 中,与 UI 相关的操作(绘图)可以在工作线程中执行吗?我的问题是,到目前为止,主线程在绘制 UI 相关项目时花费了大量时间。但是,如果我可以将与 UI 绘图相关的操作逐节委托给工作线程,则主线程将变得空闲,以便用户可以使用完成绘图的应用程序的其余部分。这可能吗?
【问题讨论】:
【参考方案1】:你应该做相反的事情。 一般来说,主应用程序线程应该只用于 GUI 的东西,因为它默认具有 Windows 消息泵。其余的工作应该在线程中完成。
【讨论】:
谢谢安德鲁。但在我的情况下,要求略有不同。有多个窗口。因此,一旦第一个寡妇完成绘图,如果工作线程可以为其他窗口完成绘图部分,那么主线程将变得空闲,最终用户可以开始与第一个窗口进行交互,而其他窗口仍处于加载状态。有什么解决办法吗? 不。绘图只能在主线程中完成。否则你最终会遇到消息泵问题。 谢谢安德鲁。我还有其他方法可以满足我的要求吗? 我需要有关您的应用的更多信息,以便为您提供建议。我假设您可以将加载/渲染/计算部分放入线程中。当这些任务正在进行时,主 GUI 线程可以跟踪它们的完成状态并使用CProgressCtrl
显示它以上是关于在 MFC 中,可以在工作线程中执行 UI 相关操作(绘制绘图)吗?的主要内容,如果未能解决你的问题,请参考以下文章