Как узнать время, необходимое для запуска приложения?

Я пишу приложение на C #, которое должно уметь определять, сколько времени требуется для открытия определенного приложения. Я использую класс Stopwatch в качестве таймера. Время запуска простое, так как я установил его точно с вызовом для запуска .exe. Проблема состоит в том, чтобы узнать, как вовремя открыть программу. Единственное, что я мог придумать, чтобы проверить это, - это использовать объект PerformanceCounter и проверять, когда CPU% меньше определенного числа, с помощью цикла while.

На данный момент я использую PerformanceCounter, но мне не повезло с ним отображение% ЦП (всегда отображается 0). Я предполагаю, что либо приложение открывается быстрее, чем PerformanceCounter может проверить CPU%, либо PerformanceCounter не видит имя процесса, потому что я вызываю его слишком быстро (я очень сомневаюсь в последнем из-за того, что Думаю, если бы это произошло, я бы получил ошибки).

Есть ли другие способы решения этой проблемы? Есть ли что-то, что я делаю неправильно, что постоянно дает мне 0% ЦП? Я не ищу внешних инструментов вне своего приложения. Вот образец моего кода:

otherApp = new otherApplication.Application();
PerformanceCounter cpuCounter = new PerformanceCounter("Process",
"% Processor Time", "otherApplication");
//This next line is to check if PerformanceCounter object is working
//MessageBox.Show(cpuCounter.NextValue().ToString());
stopwatch.Start();
while (cpuCounter.NextValue() > 10)
{
}
stopwatch.Stop();

Отредактировано: Изменен код: вместо myApp и myApplication указано otherApp и otherApplication, чтобы его было легче понять.

5
задан tshepang 12 May 2014 в 15:08
поделиться