2011-08-27 56 views
1

我想在wxWidgets处理GUI时使用boost来循环执行背景网络。我刚开始使用wxWidgets,所以我的第一个想法是在应用程序的OnInit内部的网络循环线程中开始,但这不是一个好主意,因为线程停止它后ap不能继续运行。wxWidgets和boost :: thread?

如何将boost :: thread用于多线程和wxWidgets库?

+0

你有没有考虑过使用wxWidgets的wxThread类?还有wxThreadEvent将消息传递回GUI。 – JohnPS

+0

@JohnPS我正在寻找更大的可移植性和boost :: thread是非常简单的使用。另一个原因是因为我已经事先将网络部分做为控制台应用程序。 – Speed

+0

如果您愿意,您可以在OnInit中启动一个单独的线程,只要OnInit返回true而不阻塞。你在做这个吗?你为什么不发布OnInit()的代码? – ravenspoint

回答

1

如果需要,您可以在OnInit()中启动您的网络部分,但是侦听器需要分派到不同的线程。拥有io_service并且至少有一个调用io_service上运行的boost :: thread应该做到这一点你的网络资料将由调用io_service :: run()的线程执行,并且主线程可以返回到执行wxWidgets的东西。

相关问题