【发布时间】:2018-08-09 16:59:39
【问题描述】:
我将复制上一个问题的一部分来描述问题:
我用 C++ 编写了一个应用程序,它有两个部分 - 前端和 后端。这两者使用由提供的 IPC 层进行通信 wxWidgets。在后端,我对图像数据使用了一些遗留函数 操纵。这些功能之一挂起或陷入某种无限 有时循环(我可以观察到 0% 的进程资源是 某个时间点后由进程使用),但只有当我运行时才会发生这种情况 后端作为前端的子进程。否则(当我运行它时 手动)它工作得很好。
事实证明,使用std::cout 打印太多行会导致这种情况,但我想了解原因。会不会是 wxWidgets 使用了一些缓冲区来存储应用程序输出而打印只是溢出了它?或者这是 Windows 的原生问题?或者它可能与std::cout 实现有关? 我很确定我无法使用 看来我错了 - printf 重现此问题printf 似乎也触发了该问题
【问题讨论】:
-
您非常确定或者您 100% 确定(您实际测试过)?
-
我不会撒谎:这听起来不太可能。
-
如果您复制代码中重现观察到的问题的部分会更好。
-
您是否在调用 std::cout 并且当您调试并越过该行时它会挂起?
标签: c++ windows subprocess wxwidgets