#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ドキュメントから引用するには:
wxWindowやwxBitmapへの呼び出しなどのGUI呼び出しは、セカンダリスレッドでは明らかに安全ではなく、アプリケーションを途中で終了させる可能性があります。これは、基盤となるネイティブAPIや、wxThreadがMFCなどの他のAPIと同様のGUIイベントループを実行しないという事実など、いくつかの理由によるものです。[...]推奨される方法は、wxQueueEvent()によって投稿されたイベントを介してメインスレッドでGUI呼び出しを処理することです。
したがって、基本的にこの問題を解決する最善の方法は、Showを呼び出してイベント(たとえばwxThreadEvent)を作成し、それをダイアログにポストバックしてから、イベントマクロを使用するか、ダイアログを表示するダイアログメンバーにバインド接続することではありません。
于 2012-09-10T11:13:29.880 に答える