我有一个班级层次结构:
类 BaseProcess { 公共虚拟无效执行()= 0; }; 类子进程:BaseProcess { 公共虚拟无效执行() { //做点什么 //这里需要回调GUI,可能是从文件选择器中获取文件路径 //做其他事情 //现在想用操作的进度更新GUI //更多处理 } };
假设从 GUI 按钮事件处理程序创建和调用 SubProcess 对象...
我的问题是从 Execute() 函数中与 GUI 交互的最佳方式是什么?(还假设 Execute() 可能在不同的线程上运行)
我的想法是将回调传递给 SubProcess 对象,因为这将允许我将信息发送到 GUI,但是在文件选择器的情况下,将数据返回给 SubProcess 对象的最佳方法是什么? 我希望解决方案尽可能通用,以便我可以根据请求返回不同类型的数据。
注意:请忽略任何代码错误,我快速拼凑示例只是为了说明问题
更新:
很抱歉,这将在 Windows,MFC 上。我不确定这有多重要,因为我认为整体设计应该适用于大多数 GUI 框架?