;
帖子
3919 
精华
积分
11710 
鱼币
0 ¥ 
来自
大连 
在线时间
1858 小时 
注册时间
2007-6-11 
最后登录
2009-10-20 

贴图大师勋章新人进步勋章宣传大使勋章论坛元老勋章

3
发表于 2009-1-5 19:48 | 只看该作者
鐢–#鐩戞帶骞舵樉绀篊PU鐘舵佷俊鎭 - 缂栫▼搴 - Powered by SupeSite

浣犵殑浣嶇疆锛缂栫▼搴 >> 璧勮 >> CSharp >> CSharp鏂囨。 >> 璇︾粏鍐呭 鍦ㄧ嚎鎶曠ǹ

鐢–#鐩戞帶骞舵樉绀篊PU鐘舵佷俊鎭

鍙戝竷: 2008-6-30 09:59 |  浣滆: admin |   鏌ョ湅: 0娆

銆銆绠浠

銆銆鏈枃灏嗕粙缁嶄竴绉嶇畝鍗曠殑鏂规硶鏉ユ樉绀篊PU鐨勭姸鎬佷俊鎭紝绀轰緥婕旂ず浜嗘庢牱鏄剧ずCPU娑堣楃殑澶勭悊鍣ㄦ椂闂寸櫨鍒嗘瘮锛屽畠鏄氳繃閰嶇疆涓涓ц兘璁℃暟鍣紝骞剁敤涓涓爣鍑嗚繘搴︽潯鎺т欢鍙婃爣绛炬帶浠跺懆鏈熸ц疆璇㈠鐞嗗櫒鏃堕棿鐧惧垎姣斻

銆銆鍥1锛氭樉绀篊PU澶勭悊鍣ㄦ椂闂

銆銆杩欎釜绀轰緥杩樿兘鐢ㄤ簬鐩戞帶鍗曞彴璁$畻鏈轰笂鐨勫涓鐞嗗櫒锛屼粎浠呴氳繃鍦ㄨ繍琛屾椂鍙栧緱CPU鏁(System.Environment.ProcessorCount鍙繑鍥炶繖涓)锛屽苟鍔ㄦ佹坊鍔燩erformance Monitor鎺т欢锛岃鍏跺悇鑷洃鎺т竴涓狢PU灏卞彲浠ヤ簡銆

銆銆杩樺彲浠ュ鏂囦腑鐨勬柟娉曡繘琛屾墿灞曪紝濡備笅闈㈠氨鏄竴涓娇鐢ㄤ簡Dundas .NET Gauge Control鎺т欢锛屽苟鏄剧ず浜咺ntel杩呴┌鍙屾牳澶勭悊鍣ㄧ殑绋嬪簭鎴浘锛岃櫧鐒跺湪鏂囦腑娌℃湁鍖呭惈杩欎釜渚嬪瓙锛屼絾鎬濊矾閮芥槸涓鏍风殑銆

銆銆鍥2锛氬湪鍙屾牳绯荤粺涓洃鎺ф瘡涓涓鐞嗗櫒

銆銆寮濮嬪伐绋

銆銆鍦╒isual Studio 2005涓柊寤轰竴涓猈inForm(Windows绐椾綋搴旂敤绋嬪簭)宸ョ▼鈥曗曡繖涓獥浣撶敤浜庢樉绀篊PU淇℃伅锛屼笖瑙e喅鏂规娌℃湁寮曠敤闄ら粯璁や箣澶栫殑鍏朵粬搴撱傚浘3涓鸿В鍐虫柟妗堣祫婧愭祻瑙堝櫒涓殑宸ョ▼锛

銆銆鍥3锛氳В鍐虫柟妗堣祫婧愭祻瑙堝櫒

銆銆绋嬪簭鐨勪富绐椾綋鐢变笅鍒楁爣鍑嗗伐鍏风鎺т欢缁勬垚锛

銆銆² 涓涓粍妗嗘帶浠

銆銆² 涓涓爣绛炬帶浠

銆銆² 涓涓繘搴︽潯鎺т欢

銆銆² 涓涓狿erformanceCounter鎺т欢

銆銆² 涓涓畾鏃跺櫒鎺т欢

銆銆缁勬鎺т欢鐢ㄤ簬鍖呭惈鍏朵粬鐨勬帶浠;杩涘害鏉℃帶浠惰涓烘樉绀轰粠0鑷100闂寸殑鏁板硷紝姝ラ暱灞炴ц涓1;鏍囩鎺т欢鐢ㄤ簬鏄剧ず杩涘害鏉$殑褰撳墠鏁板;鑰岃繘搴︽潯鍒欎唬琛ㄤ簡PerformanceCounter鎺т欢鎹曟崏鍒扮殑澶勭悊鍣ㄦ椂闂寸櫨鍒嗘瘮;杩涘害鏉′笌鏍囩鎺т欢閮界敱瀹氭椂鍣ㄦ帶浠剁殑Tick浜嬩欢澶勭悊绋嬪簭鏇存柊;瀹氭椂鍣ㄨ缃负姣10000姣璋冪敤Tick浜嬩欢澶勭悊绋嬪簭锛屽苟涓斿湪绋嬪簭鍒濆鍖栨椂灏卞紑濮嬭鏃朵簡銆

銆銆PerformanceCounter鎺т欢鐨勫睘鎬ц涓烘崟鎹夊鐞嗗櫒鏃堕棿鐧惧垎姣旓紝鍙互鐢ㄤ唬鐮佽缃紝涔熷彲浠ュ湪IDE涓殑灞炴ф爮閲岃缃紝鍦ㄦ湰渚嬩腑锛屾槸鍦ㄥ睘鎬ф爮閲岃缃紝濡備笅鍥炬墍绀猴細

銆銆鍥4锛歅erformance Counter鎺т欢灞炴

銆銆涓婂浘涓紝灞炴ategoryName琚涓衡淧rocessor鈥濓紝灞炴ounterName琚涓衡% Processor Time鈥濓紝涓擨nstanceName璁句负鈥淿Total鈥濄傚鏋滆鐩戞帶鍗曚釜澶勭悊鍣ㄧ殑鐘舵侊紝灞炴nstanceName闇璁句负鎸囧悜鏌愪釜鐗瑰畾鐨勫鐞嗗櫒(姣斿璇0鎴1)銆

銆銆璁剧疆瀹岃繖浜涘睘鎬т箣鍚庯紝杩橀渶瑕佺紪鍐欎竴浜涗唬鐮侊紝涓嬮潰灏辨槸绋嬪簭涓荤獥浣撶殑浠g爜锛

浠ヤ笅鏄紩鐢ㄧ墖娈碉細

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace CpuUsageTest

{

public partial class frmCpuUsage : Form

{

public frmCpuUsage()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

}

private void timer1_Tick(object sender, EventArgs e)

{

progressBar1.Value = (int)(performanceCounter1.NextValue());

label1.Text = "Processor Time: " +

progressBar1.Value.ToString() + "%";

}

}

}

銆銆绠鍗曞惂锛屽湪姝ゅ彧闇娣诲姞IDE榛樿鐢熸垚涔嬪鐨勫緢灏戜唬鐮侊紝涓昏鏄疶ick浜嬩欢鐨勫鐞嗙▼搴忥紝鍦ㄨ繖涓よ浠g爜涓紝杩涘害鏉¤璁句负鏄剧ず浠庢ц兘璁℃暟鍣ㄥ緱鏉ョ殑鍊硷紝鏍囩鎺т欢鐢变紶閫掔粰杩涘害鏉$殑鍊兼洿鏂帮紝鑰岃繖涓や釜鍊奸兘鍦ㄦ瘡娆ick浜嬩欢瑙﹀彂鏃舵洿鏂般

鎵撳嵃 | 鏀惰棌姝ら〉 |  鎺ㄨ崘缁欏ソ鍙 | 涓炬姤
涓婁竴绡 涓嬩竴绡
 

璇勫垎锛0

鍙戣〃璇勮
鏌ョ湅鍏ㄩ儴鍥炲銆愬凡鏈0浣嶇綉鍙嬪彂琛ㄤ簡鐪嬫硶銆