0

我有一个在我不是很新的开发机器上运行大约 0.7 秒的功能。(它在我测试的另一台机器上运行了大约 3 秒)

我想在上述功能完成前大约半秒向用户显示一些预先消息。

我不想在函数完成之前显示消息太久,因为只是看着它并等待会很烦人。另一方面,我宁愿不等到函数完成,因为整个事情都是从用户操作开始的,我不想浪费时间 - 如果我可以在另一个函数正在执行它的工作时显示该消息会更好.

如果功能“太快”,我已经添加了一个短循环,Thread.sleep()让预消息挂起,但恐怕通常不会是这种情况......所以,我想看看我是否可以根据当前机器规格甚至当前 CPU 使用率粗略估计执行时间,并在运行函数之前执行此操作。此外,由于我们谈论的是秒和毫秒,如果获取此信息将花费超过几毫秒的时间,那么它是不值得的。在这种情况下,我可能只在应用程序加载时计算一次。

有人知道怎么做吗?

4

1 回答 1

1

估计时间是没有意义的,而且很可能不可能准确。(尽管可能在某些情况下可以完成)。

查看过去“还剩 10 秒……还剩 2 分钟……还剩 5 秒”的 Windows 文件复制情况,它会根据使用的任何指标不断更改其估计值。最好只显示一个旋转图像或消息,让用户知道正在发生的事情。

如果您正在处理项目列表,那么对您来说会容易得多,因为消息可能是:

处理 100 项中的第 4 项。

至少那时用户可以大致知道代码在做什么。如果您没有类似的信息来通知用户,那么我会减少您的损失并显示一个简单的“处理中......”消息或一些图标,无论您喜欢什么解决方案。

于 2013-03-13T14:26:29.127 回答