2016-01-19 2 views
0

Я знаю, что вы можете получить общее использование ЦП для одного процесса, как я есть ниже, но мне было интересно, можно ли вообще получить использование ЦП для каждой отдельной формы в заявление.C# Использование процессора отдельное (дочернее) winforms

using (PerformanceCounter pCounter = new PerformanceCounter("Process", "% Processor Time", Process.GetCurrentProcess().ProcessName)) 
{ 
    pCounter.NextValue(); 
    System.Threading.Thread.Sleep(1000); 
    Console.WriteLine("Process: {0}, CPU: {1}%", Process.GetCurrentProcess().ProcessName, pCounter.NextValue()); 
} 

Можно ли использовать что-то вроде кода выше, чтобы получить использование процессора для отдельных форм в приложении или это просто не возможно - или слишком много работы для достижения результатов?

+0

С какой целью? Общую настройку производительности или вы ищете ошибку? – Kye

+0

@Kye Я создаю специальную оболочку и задаюсь вопросом, могу ли я использовать процессор для своих форм таким образом, но, похоже, это не так, мне придется передумать мой код. – 73cn0109y

ответ

0

Работа, выполняемая в процессе, не ограничивается выполнением работы над формой. Форма - это просто объект пользовательского интерфейса, который вы можете использовать для запуска любого количества потоков и задних задач, которые являются частью процесса. Вы можете создать сотни форм, а затем ничего не делать, а процесс cpu будет практически нулевым (за исключением нечетного перерисовки). С другой стороны, вы можете создать одну форму, которая запускает отдельный поток, который выполняет некоторую интенсивную работу ЦП в фоновом режиме, и использование ЦП будет стрелять. Но это использование напрямую не связано с этой формой.

+0

Я никогда не смотрел на это так. Спасибо за это. – 73cn0109y

Смежные вопросы