【问题标题】:Outputting console data from a process to gui in wxwidgets将控制台数据从进程输出到 wxwidgets 中的 gui
【发布时间】:2011-04-19 14:19:45
【问题描述】:

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

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

谢谢你..

Jvc

【问题讨论】:

    标签: multithreading user-interface wxwidgets


    【解决方案1】:

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

    我之所以这么问,是因为大多数人在问这个问题时,都是指一个单独的话题。既然你用“过程”标记了你的问题,我会假设这就是你的意思。

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

    wxWidgets 有简单易用的套接字类 wxSocketClient 和 wxSocketServer。

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

    还有很多要说的,但我冒着偏离重点的风险,因为您的问题中的细节太少了。

    【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-13
      • 2011-01-28
      • 2015-11-18
      • 2021-05-06
      • 2011-03-22
      • 1970-01-01
      相关资源
      最近更新 更多