【问题标题】:How to provide a user with progress or estimation of time to needed to complete a task如何向用户提供完成任务所需的进度或估计时间
【发布时间】:2019-11-06 07:46:00
【问题描述】:

在我的应用程序中,我正在使用一个库来生成一个 .pdf 扩展文档。这是一个 Xamarin.Forms 应用程序,因此可以从任何运行 iOS 或 Android 操作系统的设备运行。现在,我遇到的问题是向用户报告导出过程的进度。有时这可能需要 50 秒,有时需要 4 分钟。这完全取决于文档中的数据量和设备本身。

现在,如果它是一个正在运行以生成 pdf 的 for 循环,那就太好了,我可以在其中简单地迭代并显示进度。但是,我现在拥有的是“Draw”库提供的一种方法,它完成了所有的“繁重工作”,不知道是否有一种方法可以显示进度或至少估计需要多长时间完成。

总而言之,问题是,是否有某种库,或者任何人都听说过的方法来预测完成任务的估计时间。即使该方法不提供“完成步骤”,也可能是一种仍然显示某种进展的方法。任何建议都是很好的建议,我们都非常感谢。

【问题讨论】:

  • 如果你使用到Draw的库没有某种类型的进度回调,而只是那个单一的方法调用,那么你不能真正给用户一个“确定”类型进程指示符,而不是只显示一个“不确定”指示符,可能带有一个计数计时器0 to XXX,它更新它所花费的时间(以秒为单位),以便为用户提供一个伪 UI 反馈,表明某事实际发生在应用程序。
  • @SushiHangover 感谢您的评论。我已经添加了一个“微调器”,但我认为按照你的说法将时间 0 增加到 XXX 也是一个好主意。
  • 你知道文档的数据量吗?您能否在真正的大文件之前导出一个小测试文档,以便您可以根据小文件的持续时间估算大文件的持续时间?
  • @TheodorZoulias 这实际上是个好主意。谢谢!
  • 进度指标在编程界是臭名昭著的,因为它从不准确。最好完全避免它们。

标签: c# .net performance xamarin xamarin.forms


【解决方案1】:

您可以根据文档中的数据量进行估算,并根据您的估算显示进度条。进度条可能是悲观的,因此在估计完成时它将处于大约 80% 左右。在最坏的情况下,用户会看到进度条达到 100%,然后什么都没有发生,导致他们相信进程已经死亡。您可以在 100% 上显示带有文本“Finalizing...”或类似内容的标签,以减轻用户的担忧。

另一种方法是 100% 换行并从零重新启动进度条。这样用户可能会感到被背叛,但至少会更有信心继续取得进展。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 2012-03-13
    相关资源
    最近更新 更多