我如何计算我的 C# 应用程序的加载百分比。我想显示一个带有进度条的初始屏幕,显示应用程序加载的百分比。
是否有任何标准方法\库,否则我将不得不在我的表单加载代码的不同点更新进度条值。
或者任何人都可以给我一个关于应用程序预加载器的教程
我如何计算我的 C# 应用程序的加载百分比。我想显示一个带有进度条的初始屏幕,显示应用程序加载的百分比。
是否有任何标准方法\库,否则我将不得不在我的表单加载代码的不同点更新进度条值。
或者任何人都可以给我一个关于应用程序预加载器的教程
用户第一次启动您的应用程序时,假设它需要 10 秒并显示进度条倒计时这 10 秒。加载应用程序后,将加载应用程序所需的实际时间保存在用户计算机上的某个位置。下次用户加载您的应用程序时,请使用节省的时间而不是原来的 10 秒。
这是一个简单而明显的概念。用户不关心应用程序的哪些部分正在加载,他关心需要多长时间并且他希望看到倒计时。
好吧,无论如何,您都需要相当准确地猜测您的各个步骤需要多长时间。只有这样你才能给出一个真正有意义的进度条。您可以通过将加载过程分成几个您认为时间大致相等的步骤来近似它,并在完成这些步骤时计算进度。
另一种方法是不显示进度条,而是显示一系列加载步骤,用文本或图形表示。我认为 KDE 在启动时会这样做。这样,您可以显示进度,但避免用户对进度条的期望(如果进度条是线性前进或加速,则效果最佳。如果它经常停止和跳跃,只会给人一种过程非常缓慢的印象)。
另一种选择是通过尝试使程序快速启动并在运行时加载您需要的内容来完全消除启动画面。对于您或您的程序来说,这可能是也可能不是一个选项,但它可以在启动时间和程序速度的整体印象方面显示出相当显着的改进。
可能最简单的方法是在启动表单的 Load 事件开始时创建启动表单的实例。在启动表单中,将其 ProgressBar 公开为公共属性。创建初始表单后,将其 ProgressBar 的 Maximum 属性设置为您可以在 Load 事件代码中识别的离散步数,然后通过调用其 .Show() 方法(当然不是 .ShowDialog())来显示它。
随着 Load 事件中的每个步骤完成,您只需增加公共 ProgressBar 的 Value 属性。完成所有步骤后,关闭启动表单并处理它。
这可能会或可能不会正常工作,因为如果您的启动表单包含大量控件,则总加载时间的很大一部分实际上将花费在表单的构造函数中,该构造函数将在 Load 事件之前调用。最好将所有初始化代码移动到构造函数中,然后从那里创建并显示初始屏幕。
首先,启动画面显示给用户一种程序已经启动的错觉,并且他们将随时被处理控制。
其次,如果您想显示进度条,那么您需要准确计算您执行的任务数量。然后在完成每个项目后显示标签loading xxxxxx.......
和增量进度条。
至于优化启动时间的问题,主要取决于您的应用程序的功能。
假设您的应用程序是 PIM,那么您可以加载今天的事件和任务并快速向用户显示,然后开始加载其他数据。
我曾经有一个应用程序,我必须使用 Treeview 显示对象层次结构,每个节点可以有无限数量的项目。我加载了顶级对象,然后在树视图中显示并放置标记(实际上我将 * 放在节点的标记中,这是我从很久以前读过但记得的一些 .net 书籍或文章中学到的)点击我加载了直接子节点。