通常情况下,有一个 MFC/Win32/WTL/wxWidgets/Qt 应用程序可以做一些有用的事情。它被设计为单线程的,并且有一些逻辑可以处理处理块中的错误/问题。
因此,在某个类的深处,可以触发一个对话框,询问用户“您确定要完成操作吗?”/“文档布局错误”或类似的东西。
问题是对话框是从计算量大/简单的代码中触发的。像 FFT/图像锐化/文件系统碎片整理功能,或类似的东西。如果不是 GUI,它可以很容易地在工作线程中启动。并且更适合那里,因为它可以避免对用户来说如此烦人的 GUI 停顿。
然而,GUI 不能在工作线程中工作,并且依赖注入几乎是不可能的,因为它会经过几层计算代码。从类接口的角度来看,这是一种非常不干净的方式,比如someclass instance(data_in, data_out, param1, param2, GUI_class_ref) : m_GUI(GUI_class_ref), ...
3 级或更多级别。
如果代码被拆分为多个线程,是否有此类场景的模式/清单可用于将 GUI 提示编组回主线程并将结果返回到计算代码的核心?