我想知道如何測量應用程序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