#include "MessageBoxThread.h"
MessageBoxThread::MessageBoxThread(NfcUIConfirmProcessUC* dialogUC)
{
this->dialogUC = dialogUC;
}
MessageBoxThread::~MessageBoxThread(void)
{
}
void* MessageBoxThread::Entry()
{
this->dialogUC->Show(true);
return 0;
}
问问题
176 次
1 回答
2
引用 wxThread文档:
GUI 调用,例如对 wxWindow 或 wxBitmap 的调用在辅助线程中根本不安全,并且可能会过早结束您的应用程序。这是由于几个原因,包括底层的原生 API 以及 wxThread 不运行类似于 MFC 的其他 API 的 GUI 事件循环这一事实。[...] 推荐的方法是通过 wxQueueEvent() 发布的事件在主线程中简单地处理 GUI 调用
所以基本上解决这个问题的最好方法是,而不是调用 Show 来创建一个事件(例如 wxThreadEvent)将其发布回对话框,然后使用事件宏或绑定将其连接到显示对话框的对话框成员。
于 2012-09-10T11:13:29.880 回答