我想知道如何测量应用程序Loading Time
当用户启动进程时,应用程序实例,以便我可以显示进度条或什么东西,通知用户什么时候发生应用程序正在加载或完成多少应用程序加载。如何测量应用程序加载时间?
我的意思是如果我想用进度条显示当前进度,所以我认为我能够用数字定义当前进程,因此我可以增加ProgressBar
控件的Value
属性。
在此先感谢。
真诚。
编辑:
我已经找到一个解决方案是:
可以使用 System.Diagnostics.Stopwatch为 测量时间。拨打电话 方法从窗体的 构造函数开始。
在表单显示后, 通常是Application.Idle事件 上升。因此,您可以在此事件的处理程序中调用Stop 方法。 但是,您应该检查此事件 确实确实上升,例如通过使用 System.Diagnostics.Debug.WriteLine, 以及来自 sysinternals.com的工具DebugView。
所以我们可以使用System.Diagnostics.StopWatch
这样的:
using System;
using System.Diagnostics;
using System.Threading;
class Program
{
static void Main(string[] args)
{
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
Thread.Sleep(10000);
stopWatch.Stop();
// Get the elapsed time as a TimeSpan value.
TimeSpan ts = stopWatch.Elapsed;
// Format and display the TimeSpan value.
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
ts.Hours, ts.Minutes, ts.Seconds,
ts.Milliseconds/10);
Console.WriteLine(elapsedTime, "RunTime");
}
}
然后当空闲事件触发,我能找到的加载时间,并显示进度条上,但是进度条不显示准确的百分比的加载时间,我认为。
您将能够totell多少时间过去了,但没多少剩余时间。您至少需要两个才能使进度条正常工作。但它仍然不是一个光滑的指示。如果沿线的事情需要更长时间,该怎么办?如果你的进度条也失速,那么它不是一个真正的基于时间的进度条。 – 2009-10-22 00:33:37
@ o.k.w其实你是对的。所以看起来CLR中没有处理这个问题的API或库,并为我们提供了测量加载时间的类型。 – Tarik 2009-10-22 00:41:51