PerformanceCounter 建構函式
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
初始化 PerformanceCounter 類別的新執行個體。
多載
PerformanceCounter() |
初始化 PerformanceCounter 類別的新的、唯讀的執行個體,而不將執行個體與任何系統或自訂效能計數器相關聯。 |
PerformanceCounter(String, String) |
初始化 PerformanceCounter 類別的新的、唯讀的執行個體,並將其與本機電腦上指定的系統或自訂效能計數器相關聯。 這個建構函式 (Constructor) 要求分類包含單一執行個體。 |
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^ PC = gcnew PerformanceCounter;
PC->CategoryName = "Process";
PC->CounterName = "Private Bytes";
PC->InstanceName = "Explorer";
MessageBox::Show( PC->NextValue().ToString() );
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())
備註
這個建構函式的多載會將 CategoryName、 CounterName和 InstanceName 屬性設定為空字串 (“”) ,並將 屬性設定 MachineName 為本機計算機, (“。) 。
這個建構函式不會初始化性能計數器,因此不會將實例與本機計算機上的現有計數器產生關聯。 若要指向特定的性能計數器,請在讀取任何其他屬性或嘗試從計數器讀取之前,先設定 CategoryName、 CounterName和 MachineName ,InstanceName以及屬性。 若要寫入效能計數器,請將 ReadOnly 屬性設定為 false
。
注意
套HostProtectionAttribute用至此成員的屬性具有下列Resources屬性值: | SynchronizationSharedState。 HostProtectionAttribute 不會影響桌面應用程式 (這些應用程式的啟動方式一般都是按兩下圖示、輸入命令或在瀏覽器輸入 URL)。 如需詳細資訊,請參閱 類別HostProtectionAttribute或 SQL Server 程式設計和主機保護屬性。
適用於
PerformanceCounter(String, String)
初始化 PerformanceCounter 類別的新的、唯讀的執行個體,並將其與本機電腦上指定的系統或自訂效能計數器相關聯。 這個建構函式 (Constructor) 要求分類包含單一執行個體。
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 和 CounterName 屬性設定為您傳入的值、將 MachineName 屬性設定為本機計算機 “.”,並將 屬性設定 InstanceName 為空字串 (“”) 。
這個建構函式會初始化性能計數器,並將實例與現有的計數器產生關聯, (本機計算機上的系統或自定義計數器) 。 您為 CategoryName 和 CounterName 屬性傳入的值必須指向本機電腦上的現有性能計數器。
注意
若要從 Windows Vista 和更新版本中的非互動式登錄會話讀取性能計數器、Windows XP Professional x64 Edition 或 Windows Server 2003,您必須是 效能監視器 Users 群組的成員或具有系統管理許可權。
若要避免提高許可權以存取 Windows Vista 中的性能計數器,請將您自己新增至 效能監視器 Users 群組。
在 Windows Vista 中,使用者帳戶控制 (UAC) 會判斷使用者的權限。 如果您是內建 Administrators 群組的成員,系統會將兩個執行階段存取語彙基元 (Token) 指派給您:標準使用者存取語彙基元及管理員存取語彙基元。 根據預設,您會屬於標準使用者角色。 若要執行存取性能計數器的程式代碼,您必須先將許可權從標準使用者提升為系統管理員。 您可以在啟動應用程式時,以滑鼠右鍵按一下應用程式圖示,並指出您想要以系統管理員身分執行,藉此提高為系統管理員權限。
適用於
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 一部分。
PC = gcnew PerformanceCounter( "AverageCounter64SampleCategory","AverageCounter64Sample",false );
avgCounter64Sample = new PerformanceCounter("AverageCounter64SampleCategory",
"AverageCounter64Sample",
false);
avgCounter64Sample = New PerformanceCounter("AverageCounter64SampleCategory", "AverageCounter64Sample", False)
備註
參數位串不區分大小寫。
使用此多載來存取屬於包含單一性能計數器類別實例之類別之本機計算機上的唯讀或讀取/寫入計數器。 如果您嘗試使用此建構函式將此實例指向 PerformanceCounter 包含多個實例的類別,建構函式會擲回例外狀況。
這個建構函式的多載會將 CategoryName、 CounterName和 ReadOnly 屬性設定為您傳入的值、將 MachineName 屬性設定為本機計算機 “.”,並將 屬性設定 InstanceName 為空字串 (“”) 。
這個建構函式會初始化性能計數器,並將實例與現有的計數器產生關聯, (本機計算機上的系統或自定義計數器) 。 您為 CategoryName 和 CounterName 屬性傳入的值必須指向本機電腦上的現有性能計數器。 如果您指向的性能計數器實例無效,則呼叫 建構函式會擲回例外狀況。
注意
您可以使用這個多載來連線到係統計數器,但無法寫入系統計數器。 因此,連接到係統計數器時,將 設定 readOnly
為 false
會導致建構函式擲回例外狀況。
注意
若要從 Windows Vista 和更新版本中的非互動式登錄會話讀取性能計數器、Windows XP Professional x64 Edition 或 Windows Server 2003,您必須是 效能監視器 Users 群組的成員或具有系統管理許可權。
若要避免提高許可權以存取 Windows Vista 中的性能計數器,請將您自己新增至 效能監視器 Users 群組。
在 Windows Vista 中,使用者帳戶控制 (UAC) 會判斷使用者的權限。 如果您是內建 Administrators 群組的成員,系統會將兩個執行階段存取語彙基元 (Token) 指派給您:標準使用者存取語彙基元及管理員存取語彙基元。 根據預設,您會屬於標準使用者角色。 若要執行存取性能計數器的程式代碼,您必須先將許可權從標準使用者提升為系統管理員。 您可以在啟動應用程式時,以滑鼠右鍵按一下應用程式圖示,並指出您想要以系統管理員身分執行,藉此提高為系統管理員權限。
適用於
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 時發生的錯誤。
以不具有系統管理員權限執行的程式碼嘗試讀取效能計數器。
備註
參數位串不區分大小寫。
這個建構函式的多載會將 CategoryName、 CounterName和 InstanceName 屬性設定為您傳入的值,並將屬性設定 MachineName 為本機計算機 “.”。
這個建構函式會初始化性能計數器,並將實例與現有的計數器產生關聯, (本機計算機上的系統或自定義計數器) 。 您為 CategoryName、 CounterName與 InstanceName 屬性傳入的值必須指向本機電腦上的現有效能計數器。 如果您指向的性能計數器實例無效,則呼叫 建構函式會擲回例外狀況。
此多載可以存取任何唯讀或讀取/寫入計數器,但在唯讀模式中這麼做。 PerformanceCounter使用這個多載建立的實例無法寫入計數器,即使計數器本身是可擦寫的。
若要建立效能類別實例,請在建構函式上PerformanceCounter指定 instanceName
。 如果 指定的 instanceName
類別實例已經存在,新的物件將會參考現有的類別實例。
注意
若要讀取 Windows Vista、Windows XP Professional x64 Edition 或 Windows Server 2003 中的性能計數器,您必須是 效能監視器 Users 群組的成員或具有系統管理許可權。
若要避免提高許可權以存取 Windows Vista 中的性能計數器,請將您自己新增至 效能監視器 Users 群組。
在 Windows Vista 中,使用者帳戶控制 (UAC) 會判斷使用者的權限。 如果您是內建 Administrators 群組的成員,系統會將兩個執行階段存取語彙基元 (Token) 指派給您:標準使用者存取語彙基元及管理員存取語彙基元。 根據預設,您會屬於標準使用者角色。 若要執行存取性能計數器的程式代碼,您必須先將許可權從標準使用者提升為系統管理員。 您可以在啟動應用程式時,以滑鼠右鍵按一下應用程式圖示,並指出您想要以系統管理員身分執行,藉此提高為系統管理員權限。
適用於
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
為空字串 ("")。
-或-
要求的讀取/寫入權限設定對此計數器而言無效。
-或-
指定的分類不存在 (如果 readOnly
為 true
)。
-或-
指定的分類不是 .NET Framework 自訂分類 (如果 readOnly
為 false
)。
-或-
指定的類別已標示為多重執行個體,且要求使用執行個體名稱來建立效能計數器。
-或-
instanceName
長度超過 127 個字元。
-或-
categoryName
和 counterName
已經當地語系化成不同的語言。
categoryName
或 counterName
為 null
。
存取系統 API 時發生的錯誤。
以不具有系統管理員權限執行的程式碼嘗試讀取效能計數器。
備註
參數位串不區分大小寫。
使用此多載以唯讀或讀取/寫入模式存取性能計數器。
這個建構函式的多載會將 CategoryName、 CounterName和 InstanceName 屬性設定為您傳入的值,並將屬性設定 MachineName 為本機計算機 “.”。
這個建構函式會初始化性能計數器,並將實例與現有的計數器產生關聯, (本機計算機上的系統或自定義計數器) 。 您為 CategoryName、 CounterName與 InstanceName 屬性傳入的值必須指向本機電腦上的現有效能計數器。 如果您指向的性能計數器實例無效,則呼叫 建構函式會擲回例外狀況。
注意
您可以使用這個多載來連線到係統計數器,但無法寫入系統計數器。 因此,連接到係統計數器時,將 設定 readOnly
為 false
會導致建構函式擲回例外狀況。
若要建立效能類別實例,請在建構函式上PerformanceCounter指定 instanceName
。 如果 指定的 instanceName
類別實例已經存在,新的物件將會參考現有的類別實例。
注意
若要讀取 Windows Vista、Windows XP Professional x64 Edition 或 Windows Server 2003 中的性能計數器,您必須是 效能監視器 Users 群組的成員或具有系統管理許可權。
若要避免提高許可權以存取 Windows Vista 中的性能計數器,請將您自己新增至 效能監視器 Users 群組。
在 Windows Vista 中,使用者帳戶控制 (UAC) 會判斷使用者的權限。 如果您是內建 Administrators 群組的成員,系統會將兩個執行階段存取語彙基元 (Token) 指派給您:標準使用者存取語彙基元及管理員存取語彙基元。 根據預設,您會屬於標準使用者角色。 若要執行存取性能計數器的程式代碼,您必須先將許可權從標準使用者提升為系統管理員。 您可以在啟動應用程式時,以滑鼠右鍵按一下應用程式圖示,並指出您想要以系統管理員身分執行,藉此提高為系統管理員權限。
適用於
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 時發生的錯誤。
以不具有系統管理員權限執行的程式碼嘗試讀取效能計數器。
備註
參數位串不區分大小寫。
這個建構函式的多載會將 CategoryName、 CounterName、 InstanceName和 MachineName 屬性設定為您傳入的值。
這個建構函式會初始化性能計數器,並將實例與現有計數器產生關聯, (系統或指定計算機上的自定義計數器) 。 您為CategoryName、 CounterNameInstanceName 與 MachineName 屬性傳入的值必須指向現有的效能計數器。 如果您指向的性能計數器實例無效,則呼叫 建構函式會擲回例外狀況。 此多載可以存取任何唯讀或讀取/寫入計數器,但在唯讀模式中這麼做。 PerformanceCounter使用這個多載建立的實例無法寫入計數器,即使計數器本身是可擦寫的。
注意
您無法寫入遠端效能計數器。 沒有多載可讓您指定連線到遠端電腦的類別讀取/寫入實例 PerformanceCounter 。
若要建立效能類別實例,請在建構函式上PerformanceCounter指定 instanceName
。 如果 指定的 instanceName
類別實例已經存在,新的物件將會參考現有的類別實例。
注意
若要讀取 Windows Vista、Windows XP Professional x64 Edition 或 Windows Server 2003 中的性能計數器,您必須是 效能監視器 Users 群組的成員,或具有系統管理許可權。
若要避免提高許可權以存取 Windows Vista 中的性能計數器,請將您自己新增至 效能監視器 Users 群組。
在 Windows Vista 中,使用者帳戶控制 (UAC) 會判斷使用者的權限。 如果您是內建 Administrators 群組的成員,系統會將兩個執行階段存取語彙基元 (Token) 指派給您:標準使用者存取語彙基元及管理員存取語彙基元。 根據預設,您會屬於標準使用者角色。 若要執行存取性能計數器的程式代碼,您必須先將許可權從標準使用者提升為系統管理員。 您可以在啟動應用程式時,以滑鼠右鍵按一下應用程式圖示,並指出您想要以系統管理員身分執行,藉此提高為系統管理員權限。
注意
在 Windows Vista 中,當遠端電腦是工作組的成員時,您可能需要停用 UAC,讓本機使用者帳戶不會篩選,而且可以提升為系統管理員帳戶。 基於安全性考慮,停用UAC應該是最後的手段。 如需停用 UAC 的資訊,請參閱 使用者帳戶控制和 WMI。