【问题标题】:MFC multithreading designing dilemma: how to quit application elegantly?MFC多线程设计困境:如何优雅退出应用程序?
【发布时间】:2011-05-06 23:35:04
【问题描述】:

一个 MFC 程序(带有表单视图的单个文档)有一些子线程可以访问 MFC GUI 上的一些控件。 在所有子线程退出后希望主线程退出。 我尝试通知子线程退出并在 OnDestroy 处理程序中等待它们。 然而,这里有一个难题。 因为子线程可能会在 OnDestroy 处理程序中阻塞主消息循环时 SendMessage GUI 控件。这是一个僵局。

我有一个解决这个问题的想法:我希望有一种方法可以处理 MFC 的 WM_CLOSE 或 WM_QUIT,并使用像 UDM_QUIT 这样由子线程发送到主线程的自定义消息来执行实际退出,同时我没有t 等待子线程在 OnDestroy 处理程序中退出。但我不是 MFC 大师,也不知道如何实现。

【问题讨论】:

  • 从拥有线程以外的线程访问控件是一个错误。您需要修复该错误,而不是尝试解决它。​​

标签: mfc


【解决方案1】:

我发现我可以处理主机的 OnClose 来实现我上面提到的想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    相关资源
    最近更新 更多