#include "MessageBoxThread.h"
MessageBoxThread::MessageBoxThread(NfcUIConfirmProcessUC* dialogUC)
{
this->dialogUC = dialogUC;
}
MessageBoxThread::~MessageBoxThread(void)
{
}
void* MessageBoxThread::Entry()
{
this->dialogUC->Show(true);
return 0;
}
Цитировать из wxThread документы:
Вызовы GUI, такие как вызовы wxWindow или wxBitmap, явно не безопасны во вторичных потоках и могут преждевременно завершить ваше приложение. Это связано с несколькими причинами, включая базовый API-интерфейс и тот факт, что wxThread не запускает цикл событий GUI, аналогичный другим API-интерфейсам, как MFC. […] рекомендуемый способ — просто обрабатывать вызовы GUI в главном потоке через событие, которое публикуется wxQueueEvent ()
Таким образом, в основном, лучший способ решить эту проблему — это не вызывать Show, чтобы создать событие (например, wxThreadEvent), опубликовать его обратно в диалог, а затем с помощью макроса события или связать его с элементом диалога, который показывает диалог.
Других решений пока нет …