PerformanceCounter 建構函式
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
初始化 PerformanceCounter 類別的新執行個體。
多載
| 名稱 | Description |
|---|---|
| PerformanceCounter() |
初始化該類別的新唯讀實例 PerformanceCounter ,且不將該實例與任何系統或自訂效能計數器關聯。 |
| PerformanceCounter(String, String) |
初始化該類別的新唯讀實例 PerformanceCounter ,並將其與本地電腦上的指定系統或自訂效能計數器關聯。 此構造子要求類別必須有單一實例。 |
| PerformanceCounter(String, String, Boolean) |
初始化該類別的新、唯讀或讀寫實例 PerformanceCounter ,並將其與本地電腦上的指定系統或自訂效能計數器關聯。 此建構子要求類別包含單一實例。 |
| PerformanceCounter(String, String, String) |
初始化該類別的新唯讀實例 PerformanceCounter ,並將其與本地電腦上的指定系統或自訂效能計數器及類別實例關聯。 |
| PerformanceCounter(String, String, String, Boolean) |
初始化該類別的新、唯讀或讀寫實例 PerformanceCounter ,並將其關聯到本地電腦上的指定系統或自訂效能計數器及類別實例。 |
| PerformanceCounter(String, String, String, String) |
初始化該類別的新唯讀實例 PerformanceCounter ,並將其與指定系統或自訂效能計數器及類別實例關聯,並設置於指定電腦上。 |
PerformanceCounter()
初始化該類別的新唯讀實例 PerformanceCounter ,且不將該實例與任何系統或自訂效能計數器關聯。
public:
PerformanceCounter();
public PerformanceCounter();
Public Sub New ()
範例
以下程式碼範例建立該 PerformanceCounter 類別的預設實例。 實例建立後, CategoryName會設定 、 CounterName和 InstanceName 屬性值,並顯示呼叫 NextValue 方法的結果。
PerformanceCounter performanceCounter = new PerformanceCounter();
performanceCounter.CategoryName = "Process";
performanceCounter.CounterName = "Private Bytes";
performanceCounter.InstanceName = "Explorer";
MessageBox.Show(performanceCounter.NextValue().ToString());
Dim PC As New PerformanceCounter()
PC.CategoryName = "Process"
PC.CounterName = "Private Bytes"
PC.InstanceName = "Explorer"
MessageBox.Show(PC.NextValue().ToString())
備註
建構子的過載將 、 CounterName、 InstanceName 及屬性設CategoryName為空字串(“”),並將屬性設定MachineName為本地電腦(“.”)。
此建構子不會初始化效能計數器,因此不會將實例與本地電腦上的現有計數器關聯。 要指向特定的效能計數器,先設定 CategoryName、 CounterName,以及(可選的)InstanceNameMachineName和 屬性,然後再讀取其他屬性或嘗試從計數器讀取。 要寫入效能計數器,將屬性設 ReadOnly 為 false。
備註
HostProtectionAttribute套用於此成員的屬性具有以下Resources屬性值: | SynchronizationSharedState 。 這 HostProtectionAttribute 不會影響桌面應用程式(通常透過雙擊圖示、輸入指令或在瀏覽器輸入網址來啟動)。 欲了解更多資訊,請參閱 HostProtectionAttribute 類別或 SQL Server 程式設計與主機保護屬性。
適用於
PerformanceCounter(String, String)
初始化該類別的新唯讀實例 PerformanceCounter ,並將其與本地電腦上的指定系統或自訂效能計數器關聯。 此構造子要求類別必須有單一實例。
public:
PerformanceCounter(System::String ^ categoryName, System::String ^ counterName);
public PerformanceCounter(string categoryName, string counterName);
new System.Diagnostics.PerformanceCounter : string * string -> System.Diagnostics.PerformanceCounter
Public Sub New (categoryName As String, counterName As String)
參數
- categoryName
- String
該效能計數器所關聯的效能計數器類別(效能物件)名稱。
- counterName
- String
績效計數器的名字。
例外狀況
categoryName 是空字串(“”)。
-或-
counterName 是空字串(“”)。
-或-
所指定的類別不存在。
-或-
所指定的類別標示為多實例,並要求效能計數器以實例名稱建立。
-或-
categoryName 並且 counterName 已被本地化成不同語言。
categoryName 或 counterName 為 null。
存取系統 API 時發生錯誤。
未取得管理權限執行的程式碼嘗試讀取效能計數器。
備註
參數字串不區分大小寫。
利用此過載存取本機電腦上屬於包含單一效能計數器類別實例的計數器。 如果你嘗試用這個建構子指向 PerformanceCounter 包含多個實例的類別,建構子會拋出例外。 此過載可存取任何唯讀或讀寫計數器,但以唯讀模式進行。 PerformanceCounter使用此過載建立的實例無法寫入計數器,即使計數器本身是讀寫狀態。
這個建構子的過載會將 和 屬性設CategoryName為你傳遞的值,將屬性設MachineName為本地電腦的「.」,並將屬性設InstanceName為空字串(“CounterName”)。
此建構器初始化效能計數器,並將實例與本地電腦上的現有計數器(系統或自訂計數器)關聯。 你傳遞給 和 CategoryNameCounterName 屬性的數值必須指向本地電腦上的現有效能計數器。
備註
要讀取 Windows Vista 及以後版本、Windows XP Professional x64 版或 Windows Server 2003 中非互動式登入會話的效能計數器,您必須是效能監控使用者群組的成員或擁有管理員權限。
為了避免在 Windows Vista 中提升權限才能存取效能計數器,請將自己加入效能監控使用者群組。
在 Windows Vista 中,用戶帳戶控制 (UAC) 會決定用戶的許可權。 如果你是內建管理員群組的成員,你會被分配兩個執行時存取權杖:一個標準使用者存取權杖和一個管理員存取權杖。 根據預設,您處於標準使用者角色。 要執行存取效能計數器的程式碼,你必須先將權限從標準使用者提升為管理員。 當您以滑鼠右鍵按下應用程式圖示,並指出您想要以系統管理員身分執行,即可啟動應用程式。
適用於
PerformanceCounter(String, String, Boolean)
初始化該類別的新、唯讀或讀寫實例 PerformanceCounter ,並將其與本地電腦上的指定系統或自訂效能計數器關聯。 此建構子要求類別包含單一實例。
public:
PerformanceCounter(System::String ^ categoryName, System::String ^ counterName, bool readOnly);
public PerformanceCounter(string categoryName, string counterName, bool readOnly);
new System.Diagnostics.PerformanceCounter : string * string * bool -> System.Diagnostics.PerformanceCounter
Public Sub New (categoryName As String, counterName As String, readOnly As Boolean)
參數
- categoryName
- String
該效能計數器所關聯的效能計數器類別(效能物件)名稱。
- counterName
- String
績效計數器的名字。
- readOnly
- Boolean
true 用只讀模式存取計數器(雖然計數器本身可讀寫); false 以讀寫模式存取計數器。
例外狀況
這是一個 categoryName 空字串(“”)。
-或-
這是一個 counterName 空字串(“”)。
-或-
所指定的類別不存在。 (若 readOnly 是 true)。
-或-
所指定的類別並非 .NET Framework 的自訂類別(若 readOnly 是 false)。
-或-
所指定的類別標示為多實例,並要求效能計數器以實例名稱建立。
-或-
categoryName 並且 counterName 已被本地化成不同語言。
categoryName 或 counterName 為 null。
存取系統 API 時發生錯誤。
未取得管理權限執行的程式碼嘗試讀取效能計數器。
範例
以下程式碼範例建立該 PerformanceCounter 類別的實例。 範例中會傳遞類別名稱、計數器名稱,以及一個標記值,表示計數器不是唯讀的。 這個程式碼範例是本類別更大範例 PerformanceCounter 的一部分。
avgCounter64Sample = new PerformanceCounter("AverageCounter64SampleCategory",
"AverageCounter64Sample",
false);
avgCounter64Sample = New PerformanceCounter("AverageCounter64SampleCategory", "AverageCounter64Sample", False)
備註
參數字串不區分大小寫。
利用此過載存取本機電腦上屬於單一效能計數器類別實例的唯讀或讀寫計數器。 如果你嘗試用這個建構子指向 PerformanceCounter 包含多個實例的類別,建構子會拋出例外。
這個建構子的超載會將 CategoryName、 CounterName、 ReadOnly 設定為你傳遞的值,將屬性設定 MachineName 為本地電腦的「.」,並將屬性設 InstanceName 為空字串(“”)。
此建構器初始化效能計數器,並將實例與本地電腦上的現有計數器(系統或自訂計數器)關聯。 你傳遞給 和 CategoryNameCounterName 屬性的數值必須指向本地電腦上的現有效能計數器。 如果你指向的效能計數器實例無效,呼叫建構子會拋出例外。
備註
你可以利用這個過載連接到系統計數器,但無法寫入系統計數器。 因此,連接系統計數器時設定 readOnly 為 會 false 使建構子拋出例外。
備註
要讀取 Windows Vista 及以後版本、Windows XP Professional x64 版或 Windows Server 2003 中非互動式登入會話的效能計數器,您必須是效能監控使用者群組的成員或擁有管理員權限。
為了避免在 Windows Vista 中提升權限才能存取效能計數器,請將自己加入效能監控使用者群組。
在 Windows Vista 中,用戶帳戶控制 (UAC) 會決定用戶的許可權。 如果你是內建管理員群組的成員,你會被分配兩個執行時存取權杖:一個標準使用者存取權杖和一個管理員存取權杖。 根據預設,您處於標準使用者角色。 要執行存取效能計數器的程式碼,你必須先將權限從標準使用者提升為管理員。 當您以滑鼠右鍵按下應用程式圖示,並指出您想要以系統管理員身分執行,即可啟動應用程式。
適用於
PerformanceCounter(String, String, String)
初始化該類別的新唯讀實例 PerformanceCounter ,並將其與本地電腦上的指定系統或自訂效能計數器及類別實例關聯。
public:
PerformanceCounter(System::String ^ categoryName, System::String ^ counterName, System::String ^ instanceName);
public PerformanceCounter(string categoryName, string counterName, string instanceName);
new System.Diagnostics.PerformanceCounter : string * string * string -> System.Diagnostics.PerformanceCounter
Public Sub New (categoryName As String, counterName As String, instanceName As String)
參數
- categoryName
- String
該效能計數器所關聯的效能計數器類別(效能物件)名稱。
- counterName
- String
績效計數器的名字。
- instanceName
- String
使用效能計數器類別實例名稱,或若類別包含單一實例,則為空字串(“”)。
例外狀況
categoryName 是空字串(“”)。
-或-
counterName 是空字串(“”)。
-或-
所指定的類別不適用。
-或-
所指定的類別標示為多實例,並要求效能計數器以實例名稱建立。
-或-
instanceName 長度超過127個字元。
-或-
categoryName 並且 counterName 已被本地化成不同語言。
categoryName 或 counterName 為 null。
存取系統 API 時發生錯誤。
未取得管理權限執行的程式碼嘗試讀取效能計數器。
備註
參數字串不區分大小寫。
這個建構子的過載會將 、 CounterName和 InstanceName 屬性設CategoryName為你傳遞的值,並將屬性設定MachineName為本地電腦的「.」。
此建構器初始化效能計數器,並將實例與本地電腦上的現有計數器(系統或自訂計數器)關聯。 你傳遞的 CategoryName、 CounterName、 和 InstanceName 屬性的值必須指向本地電腦上的現有效能計數器。 如果你指向的效能計數器實例無效,呼叫建構子會拋出例外。
此過載可存取任何唯讀或讀寫計數器,但以唯讀模式進行。 PerformanceCounter使用此過載建立的實例無法寫入計數器,即使計數器本身是讀寫狀態。
要建立一個效能類別實例,請在建構子上PerformanceCounter指定一個instanceName。 如果 指定的 instanceName 類別實例已經存在,新物件會參考現有的類別實例。
備註
要在 Windows Vista、Windows XP Professional x64 版或 Windows Server 2003 中讀取效能計數器,您必須是效能監控使用者群組的成員或擁有管理員權限。
為了避免在 Windows Vista 中提升權限才能存取效能計數器,請將自己加入效能監控使用者群組。
在 Windows Vista 中,用戶帳戶控制 (UAC) 會決定用戶的許可權。 如果你是內建管理員群組的成員,你會被分配兩個執行時存取權杖:一個標準使用者存取權杖和一個管理員存取權杖。 根據預設,您處於標準使用者角色。 要執行存取效能計數器的程式碼,你必須先將權限從標準使用者提升為管理員。 當您以滑鼠右鍵按下應用程式圖示,並指出您想要以系統管理員身分執行,即可啟動應用程式。
適用於
PerformanceCounter(String, String, String, Boolean)
初始化該類別的新、唯讀或讀寫實例 PerformanceCounter ,並將其關聯到本地電腦上的指定系統或自訂效能計數器及類別實例。
public:
PerformanceCounter(System::String ^ categoryName, System::String ^ counterName, System::String ^ instanceName, bool readOnly);
public PerformanceCounter(string categoryName, string counterName, string instanceName, bool readOnly);
new System.Diagnostics.PerformanceCounter : string * string * string * bool -> System.Diagnostics.PerformanceCounter
Public Sub New (categoryName As String, counterName As String, instanceName As String, readOnly As Boolean)
參數
- categoryName
- String
該效能計數器所關聯的效能計數器類別(效能物件)名稱。
- counterName
- String
績效計數器的名字。
- instanceName
- String
使用效能計數器類別實例名稱,或若類別包含單一實例,則為空字串(“”)。
- readOnly
- Boolean
true 以唯讀模式存取計數器; false 以讀寫模式存取計數器。
例外狀況
categoryName 是空字串(“”)。
-或-
counterName 是空字串(“”)。
-或-
請求的讀寫權限設定對此計數器無效。
-或-
若為true,則指定的範疇不存在。readOnly
-或-
所指定的類別並非 .NET Framework 的自訂類別(若 readOnly 是 false)。
-或-
所指定的類別標示為多實例,並要求效能計數器以實例名稱建立。
-或-
instanceName 長度超過127個字元。
-或-
categoryName 並且 counterName 已被本地化成不同語言。
categoryName 或 counterName 為 null。
存取系統 API 時發生錯誤。
未取得管理權限執行的程式碼嘗試讀取效能計數器。
備註
參數字串不區分大小寫。
利用此過載方式存取唯讀或讀寫模式的效能計數器。
建構子的過載會將 、 CounterName和InstanceName屬性設定CategoryName為你傳遞的值,並將屬性設MachineName為本地電腦的「.」。
此建構器初始化效能計數器,並將實例與本地電腦上的現有計數器(系統或自訂計數器)關聯。 你傳遞的 CategoryName、 CounterName、 和 InstanceName 屬性的值必須指向本地電腦上的現有效能計數器。 如果你指向的效能計數器實例無效,呼叫建構子會拋出例外。
備註
你可以利用這個過載連接到系統計數器,但無法寫入系統計數器。 因此,連接系統計數器時設定 readOnly 為 會 false 使建構子拋出例外。
要建立一個效能類別實例,請在建構子上PerformanceCounter指定一個instanceName。 如果 指定的 instanceName 類別實例已經存在,新物件會參考現有的類別實例。
備註
要在 Windows Vista、Windows XP Professional x64 版或 Windows Server 2003 中讀取效能計數器,您必須是效能監控使用者群組的成員或擁有管理員權限。
為了避免在 Windows Vista 中提升權限才能存取效能計數器,請將自己加入效能監控使用者群組。
在 Windows Vista 中,用戶帳戶控制 (UAC) 會決定用戶的許可權。 如果你是內建管理員群組的成員,你會被分配兩個執行時存取權杖:一個標準使用者存取權杖和一個管理員存取權杖。 根據預設,您處於標準使用者角色。 要執行存取效能計數器的程式碼,你必須先將權限從標準使用者提升為管理員。 當您以滑鼠右鍵按下應用程式圖示,並指出您想要以系統管理員身分執行,即可啟動應用程式。
適用於
PerformanceCounter(String, String, String, String)
初始化該類別的新唯讀實例 PerformanceCounter ,並將其與指定系統或自訂效能計數器及類別實例關聯,並設置於指定電腦上。
public:
PerformanceCounter(System::String ^ categoryName, System::String ^ counterName, System::String ^ instanceName, System::String ^ machineName);
public PerformanceCounter(string categoryName, string counterName, string instanceName, string machineName);
new System.Diagnostics.PerformanceCounter : string * string * string * string -> System.Diagnostics.PerformanceCounter
Public Sub New (categoryName As String, counterName As String, instanceName As String, machineName As String)
參數
- categoryName
- String
該效能計數器所關聯的效能計數器類別(效能物件)名稱。
- counterName
- String
績效計數器的名字。
- instanceName
- String
使用效能計數器類別實例名稱,或若類別包含單一實例,則為空字串(“”)。
- machineName
- String
效能計數器及其相關類別存在的電腦。
例外狀況
categoryName 是空字串(“”)。
-或-
counterName 是空字串(“”)。
-或-
請求的讀寫權限設定對此計數器無效。
-或-
該計數器在指定的電腦上不存在。
-或-
所指定的類別標示為多實例,並要求效能計數器以實例名稱建立。
-或-
instanceName 長度超過127個字元。
-或-
categoryName 並且 counterName 已被本地化成不同語言。
這個 machineName 參數並不成立。
categoryName 或 counterName 為 null。
存取系統 API 時發生錯誤。
未取得管理權限執行的程式碼嘗試讀取效能計數器。
備註
參數字串不區分大小寫。
建構子的過載會將 、 CounterName、 InstanceName和 MachineName 屬性設定CategoryName為你傳遞的值。
此建構子初始化效能計數器,並將實例與指定電腦上的現有計數器(系統或自訂計數器)關聯。 你傳遞給 CategoryName、 CounterName和 InstanceNameMachineName 屬性的值必須指向一個現有的效能計數器。 如果你指向的效能計數器實例無效,呼叫建構子會拋出例外。 此過載可存取任何唯讀或讀寫計數器,但以唯讀模式進行。 PerformanceCounter使用此過載建立的實例無法寫入計數器,即使計數器本身是讀寫狀態。
備註
你無法寫入遠端效能計數器。 沒有過載功能讓你指定一個連接遠端電腦的讀寫實例 PerformanceCounter 。
要建立一個效能類別實例,請在建構子上PerformanceCounter指定一個instanceName。 如果 指定的 instanceName 類別實例已經存在,新物件會參考現有的類別實例。
備註
要在 Windows Vista、Windows XP Professional x64 版或 Windows Server 2003 中讀取效能計數器,您必須是效能監控使用者群組的成員或擁有管理員權限。
為了避免在 Windows Vista 中提升權限才能存取效能計數器,請將自己加入效能監控使用者群組。
在 Windows Vista 中,用戶帳戶控制 (UAC) 會決定用戶的許可權。 如果你是內建管理員群組的成員,你會被分配兩個執行時存取權杖:一個標準使用者存取權杖和一個管理員存取權杖。 根據預設,您處於標準使用者角色。 要執行存取效能計數器的程式碼,你必須先將權限從標準使用者提升為管理員。 當您以滑鼠右鍵按下應用程式圖示,並指出您想要以系統管理員身分執行,即可啟動應用程式。
備註
在 Windows Vista 中,當遠端電腦是工作群組成員時,可能需要停用 UAC,避免本地使用者帳號被過濾,並能升格為管理員帳號。 出於安全考量,關閉UAC應該是最後手段。 有關停用 UAC 的資訊,請參見 使用者帳號控制與 WMI。