在执行长时间运行的进程时,最好向用户提供反馈,例如,更新进度条.
GUI库的一些常见问题解答建议如下:
function long_running_progress() do_some_work() update_progress_bar() while finish do_some_work() update_progress_bar() end while end function
无论如何,我们知道将业务逻辑代码与用户界面代码分开是一种最佳实践.上面的示例是在业务逻辑功能中混合用户界面代码.
在业务逻辑层中实现功能的好技术是什么,其进度可以通过用户界面轻松跟踪而无需混合层?
欢迎任何语言或平台的答案.
提供回调接口.业务逻辑每隔一段时间就会调用它的方法.用户层将更新进度或其他任何内容.如果你想允许取消 - 没问题,让回调方法有一个返回值,表示需要取消.无论线程数多少,这都可以.