我在后台运行了一个漫长的过程。我设法将控制台数据输出到gui。但是问题在于,仅在处理完成之后才返回数据。但是我需要实时显示数据。即,每次在控制台上产生一些输出时,我都需要显示数据。我正在从单独的线程在gui中运行该过程。
我的意思是,这就像为ping命令构建一个gui,在每个包发送完之后(即实时)在控制台上显示输出。我只需要实时将其重定向到gui。我正在wxwidgets中实现gui。任何帮助将不胜感激。
感谢您..
聚氯乙烯
最佳答案
您希望显示的输出是否在与运行GUI的过程不同的过程中生成?还是在同一进程中的单独线程中?
我之所以问是因为,大多数人在问这个问题时,都意味着一个单独的话题。由于您已经用“过程”标记了您的问题,因此我假设这就是您的意思。
您需要一些进程间的通信。有各种各样的技术可以做到这一点。就个人而言,我总是使用套接字。
wxWidgets具有简单易用的套接字类wxSocketClient和wxSocketServer。
后台进程可能未运行wxWidgets,因此您还需要其他东西。我推荐boost::asio。我知道它看起来令人生畏,但实际上该教程代码可以按原样使用。
还有很多话要说,但我冒着背离这一点的风险,因为您的问题中的细节太少了。
关于multithreading - 将控制台数据从进程输出到wxwidgets中的gui,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5717842/