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