我有一个函数在我不太新的开发机器上运行了大约0.7秒。 (它在我测试的另一台机器上运行约3秒钟)在运行某个函数之前估计执行时间
我想在上述功能完成前向用户显示大约半秒的预先消息。
在函数完成之前,我不想显示消息太久,因为看着它并等待会很烦人。另一方面,我宁愿不等到功能完成,因为整个事情都是从用户操作开始的,我不想浪费时间 - 如果能够在其他功能执行任务时显示该消息。
我已经添加了一个短Thread.sleep()
的循环,让预先消息挂起,如果功能“太快”,但我恐怕通常不会是这样的......所以,我想要看看我能否基于当前的机器规格大致估计执行时间,甚至可以根据当前的CPU使用情况来估计执行时间,并在运行该函数之前执行此操作。另外,由于我们正在谈论几秒和几毫秒,如果获取这些信息将花费超过几毫秒,那么这是不值得的。在这种情况下,我可能只在应用程序加载时计算一次。
有没有人有一个想法如何做到这一点?
在后台线程上运行该函数,在UI线程上显示消息,并在后台线程完成其任务时删除该消息。你不需要估计任何东西,你仍然可以保持UI的自由。 – keyboardP 2013-03-13 14:20:36
假设时间总是一个坏主意。你如何知道你的功能在任何机器上运行超过0.5秒? – 2013-03-13 14:22:06
假设时间是不可能的:如果在过去10年中用户开始一个拥有更高优先级的繁重任务,并且您的任务刚好处于挨饿状态,该怎么办? – 2013-03-13 14:22:50