在运行函数之前估计执行时间

时间:2013-03-13 14:17:52

标签: c# cpu-usage execution-time

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

我希望在上述功能完成之前向用户显示大约半秒的预先消息。

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

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

有人知道该怎么做吗?

1 个答案:

答案 0 :(得分:1)

估计时间毫无意义,而且很可能无法确定时间。 (虽然可能会有一些情况可以完成)。

过去看看Windows文件复制“剩下10秒......还剩2分钟......还剩5秒”它根据使用的指标不断改变其估算值。最好只显示一个spnning图像或消息,让用户知道正在发生的事情。

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

  

处理第4项,共100项。

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