【发布时间】: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