.NET(C#):監控CPU和記憶體的使用狀況

來源:互聯網
上載者:User

更新:

完整的工作管理員請參考:

Mgen 輕型工作管理員 更新和簡介

 

最近在用C#/WPF寫一個工作管理員程式,先把監控CPU和記憶體的部分單獨放出來。

 

完全和工作管理員顯示同樣的資料:

 

目前的版本的程式和原始碼下載

注意:此為微軟SkyDrive存檔,請用瀏覽器直接下載,用某些下載工具可能無法下載

程式運行環境:.NET Framework 4.0 Client Profile

原始碼環境:Visual Studio 2010

 

關於代碼,CPU方面的以前講過,可以參考:

.NET(C#)監控CPU使用狀況

.NET(C#)擷取進程的CPU使用

 

記憶體上比較有趣,方法有很多。可以使用WMI的Win32_PhysicalMemory,但是由於程式要頻繁(每秒一次)進行資訊的重新整理,所以使用WMI會難免有些慢。第二就是使用API的GlobalMemoryStatus方法,缺點是需要進行平台叫用的一些列套路(DllImport,參數的封送……)。程式用第三種方法,直接引用 Microsoft.VisualBasic.dll類庫(在.NET Framework 2.0後加入的類庫,屬於.NET Framework本身),並用ComputerInfo類型的AvailablePhysicalMemory和TotalPhysicalMemory來擷取當前剩餘/全部實體記憶體。注意每當擷取上述屬性,它們的值會自動重新整理的,不需要調用其他方法。

 

事實上第三種方法內部也調用了GlobalMemoryStatus API方法,你可以在ILSpy找到相應線索。(ComputerInfo的私人Refresh方法會調用NativeMethods.GlobalMemoryStatus平台叫用)。

 

其他關於記憶體的可以參考:

.NET(C#):擷取進程的記憶體私人工作集

.NET(C#)自己做一個系統資訊查看器

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.