2016-01-19 24 views
0

我知道你可以得到一個單獨的進程,因爲我有以下的總CPU使用率,但我想知道是否有可能得到每個單獨的表單的CPU使用率應用。C#CPU使用率單獨(子)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()); 
} 

是否可以使用像上面的代碼的東西以獲取應用程序中的各個表單CPU使用率,或者這是簡單的不可能的 - 或者太多的工作成果?

+0

爲了什麼目的?一般性能調整,或者你正在尋找一個錯誤? – Kye

+0

@Kye我正在做一個自定義shell,並想知道如果我可以通過這種方式獲取我的表單的CPU使用情況,但似乎不是這樣,我將不得不重新考慮我的代碼。 – 73cn0109y

回答

0

在一個過程中進行的工作不僅限於在窗體上工作。表單僅僅是一個用戶界面對象,您可以使用它來啓動任何數量的線程和後臺任務,這些任務都是該流程的一部分。你可以創建數百個表單,然後什麼都不做 - 並且進程的cpu使用率將基本爲零(除了奇怪的重繪)。另一方面,您可以創建一個表單來啓動一個單獨的線程,在後臺執行一些CPU密集型工作,並且CPU使用率將上升。但是這種用法不能直接歸因於該表單。

+0

我從來沒有真正用這種方式看過它。謝謝你。 – 73cn0109y