在长时间运行的过程和用户​​界面/业务逻辑分离期间提供用户反馈

Man*_*ron 1 user-interface hci

在执行长时间运行的进程时,最好向用户提供反馈,例如,更新进度条.

GUI库的一些常见问题解答建议如下:

function long_running_progress()
    do_some_work()
    update_progress_bar()
    while finish
        do_some_work()
        update_progress_bar()
    end while
end function
Run Code Online (Sandbox Code Playgroud)

无论如何,我们知道将业务逻辑代码与用户界面代码分开是一种最佳实践.上面的示例是在业务逻辑功能中混合用户界面代码.

在业务逻辑层中实现功能的好技术是什么,其进度可以通过用户界面轻松跟踪而无需混合层?

欢迎任何语言或平台的答案.

sha*_*oth 5

提供回调接口.业务逻辑每隔一段时间就会调用它的方法.用户层将更新进度或其他任何内容.如果你想允许取消 - 没问题,让回调方法有一个返回值,表示需要取消.无论线程数多少,这都可以.