1
#include "MessageBoxThread.h"

MessageBoxThread::MessageBoxThread(NfcUIConfirmProcessUC* dialogUC)
{
    this->dialogUC = dialogUC;
}

MessageBoxThread::~MessageBoxThread(void)
{
}

void* MessageBoxThread::Entry()
{
    this->dialogUC->Show(true);
    return 0;
}
4

1 回答 1

2

引用 wxThread文档

GUI 调用,例如对 wxWindow 或 wxBitmap 的调用在辅助线程中根本不安全,并且可能会过早结束您的应用程序。这是由于几个原因,包括底层的原生 API 以及 wxThread 不运行类似于 MFC 的其他 API 的 GUI 事件循环这一事实。[...] 推荐的方法是通过 wxQueueEvent() 发布的事件在主线程中简单地处理 GUI 调用

所以基本上解决这个问题的最好方法是,而不是调用 Show 来创建一个事件(例如 wxThreadEvent)将其发布回对话框,然后使用事件宏或绑定将其连接到显示对话框的对话框成员。

于 2012-09-10T11:13:29.880 回答