Мне интересно, как измерить приложение Loading Time
, когда пользователь запускает процесс, экземпляр приложения, чтобы я мог показать индикатор выполнения или что-то, что информирует пользователей о том, что происходит при загрузке приложения или о том, сколько загрузки приложения завершено.Как измерить время загрузки приложения?
Я имею в виду, что если я хочу показать текущий прогресс с индикатором выполнения, поэтому я думаю, что могу определить текущий процесс с числами, чтобы увеличить значение Value
объекта управления ProgressBar
.
Заранее спасибо.
С уважением.
Edit:
Что я нашел, как решение:
Вы можете использовать System.Diagnostics.Stopwatch для измерения времени. Поместите вызов метода . Начните с начала конструктора формы.
После того, как была отображена форма, обычно появляется событие Application.Idle . Таким образом, вы можете вызвать метод Stop в обработчике этого события. Но вы должны убедиться, что это событие действительно действительно растет, например. используя System.Diagnostics.Debug.WriteLine, вместе с инструментом DebugView от sysinternals.com.
Таким образом, мы можем использовать 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");
}
}
И тогда, когда Idle событие срабатывает, я смог бы найти время загрузки и показать его на прогресс-бар, но прогресс бар не будет показывать Точный процент времени загрузки, я думаю.
Вы сможете totell, сколько времени прошло, но не то, сколько времени осталось. Вам нужно, по крайней мере, оба, чтобы заставить индикатор выполнения работать. НО это все еще негласное указание. Что, если что-то вдоль линии займет гораздо больше времени. Если ваш индикатор прогресса тоже стоит, то это не настоящий баг с индикацией времени. –
@ o.k.w ну на самом деле вы правы. Таким образом, кажется, что в CLR нет API или библиотеки, которые справляются с этой проблемой и предоставляют нам типы для измерения времени загрузки. – Tarik