简而言之,我正在尝试为我的网络应用程序实现一个 GUI。他们都有 mainloop() 所以我试图将它们放入单独的线程中,并且我正在使用 boost::thread 。
//standard initialization of boost::thread
GuiThread.join();
NetworkThread.join();
但是,由于某种未知原因,上述崩溃。我正在寻找任何方法来做同样的事情,所以任何建议都会受到赞赏。
在此先感谢,红。
编辑:
我正在创建 wxWidgets 主循环的 boost::thread GuiThread,如下所示:
boost::thread GuiThread = boost::thread ( boost::bind( &myAppClass::MainLoop(), this));
和 Networkthread 一样。
然后我像这样重写 wxApp OnRun() 函数:
int OnRun() {
GuiThread.join();
NetworkThread.join();
return 0;
}
当我运行它时(在 vs2010 中),它说:myApp.exe 触发了一个断点,如果我按 continue 它将停止显示窗口,如果我按 break 它会显示我的程序集。