【发布时间】:2011-08-27 17:23:53
【问题描述】:
我想使用 boost 在 wxWidgets 处理 GUI 时循环执行后台网络工作。我刚开始使用 wxWidgets,所以我的第一个想法是从应用程序的 OnInit 内的网络循环线程中开始,但这并不是一个好主意,因为当线程停止时,应用程序无法继续运行。
如何将 boost::thread 用于多线程和 wxWidgets 库一起使用?
【问题讨论】:
-
你考虑过使用 wxWidgets wxThread 类吗?还有 wxThreadEvent 用于将事件消息传回 GUI。
-
@JohnPS 我正在寻找更大的可移植性,而 boost::thread 使用起来确实更简单。另一个原因是因为我已经预先将网络部分作为控制台应用程序。
-
如果您愿意,您可以在 OnInit 中启动一个单独的线程,前提是 OnInit 返回 true 而不会阻塞。你在做这个吗?为什么不发布 OnInit() 的代码?
-
我认为在 GUI 中使用线程进行联网并不是最好的选择,因为在某些时候您必须与 GUI 同步。您是否考虑过使用 boost::asio?我已经将它与 wxTimer 一起使用。
标签: networking wxwidgets boost-thread