요약하면 네트워킹 응용 프로그램에 GUI를 구현하려고합니다. 둘 다 mainloop() 그래서 별도의 스레드에 넣으려고 해요 그리고 boost :: thread 사용하고 있습니다.wxwidgets의 mainloop() 및 boost :: thread
//standard initialization of boost::thread
GuiThread.join();
NetworkThread.join();
그러나 알 수없는 이유로 충돌합니다. 같은 제안을 할 수있는 방법을 모색 중이므로 어떤 제안도 환영 할 것입니다.
미리 감사드립니다.
편집 :
것은 내가 지금처럼 wxWidgets에의 주회 돌이의 부스트 : 스레드 GuiThread을 만드는거야 :
boost::thread GuiThread = boost::thread (boost::bind(&myAppClass::MainLoop(), this));
및 Networkthread 같은 방법으로. 난 (VS2010에서)를 실행하면, 그것은 말한다
int OnRun() {
GuiThread.join();
NetworkThread.join();
return 0;
}
을 :
그럼 난과 같이) 함수를 wxApp OnRun을 (다시 MyApp.exe의 중단 점을 트리거하고 내가 계속 누르면 그것은을 보여주는 중지 창문, 내가 누를 때마다 나에게 어셈블리를 보여줍니다.
정보가 충분하지 않습니다. 어떤 충돌, 어디서 충돌, 어떻게 충돌 ... –
@Igor R. 거기 내가 편집했습니다. –
다른 스레드에서 wxwidgets gui에 액세스하는 것이 합법적입니까? 이 gui 루프를 메인 테드에두고 네트워크 루프를 위해서만 다른 스레드를 시작하는 것이 좋습니다. –