将控制台数据从进程输出到wxwidgets中的gui



我正在后台运行一个长进程。我已经成功地将控制台数据输出到gui。但问题是,只有在流程完成后才返回数据。但我需要实时显示数据。即,我需要显示数据,每次它在控制台上产生一些输出。我在我的gui中从一个单独的线程运行进程。

我的意思是,这就像为ping命令构建一个gui,在每个数据包发送后输出显示在控制台上,即实时。我只需要实时重定向到gui。我在wxwidgets中实现gui。任何帮助都将非常感激。

感谢你. .合资公司

您希望显示的输出是在与运行GUI的进程分开的进程中生成的吗?还是在同一进程中的单独线程中?

我问是因为大多数人,当他们问这个问题,意味着一个单独的线程。既然你在你的问题上加上了"过程"的标签,我就假定这就是你的意思。

您需要一些进程间通信。有各种各样令人眼花缭乱的技术可以做到这一点。就我个人而言,我总是使用套接字。

wxWidgets有简单,易于使用的socket类wxSocketClient和wxSocketServer。

后台进程可能没有运行wxWidgets,因此您将需要其他东西。我推荐使用boost::asio。我知道它看起来很吓人,但实际上教程代码可以按原样使用。

还有很多要说的,但我冒着跑题的风险,因为你的问题中没有多少细节。

可以使用wxMutex来保护输出队列。执行计算的线程写入队列,然后使用带有自定义事件的wxQueueEvent向GUI线程发出信号,让它知道线程不是空的。然后GUI线程读取队列并输出数据。

相关内容

  • 没有找到相关文章

最新更新