PerformanceCounterCategory.Exists 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
判斷該類別是否已登錄於系統。
多載
| 名稱 | Description |
|---|---|
| Exists(String) |
判斷該類別是否註冊於本地電腦。 |
| Exists(String, String) |
判斷該類別是否註冊在指定的電腦上。 |
Exists(String)
判斷該類別是否註冊於本地電腦。
public:
static bool Exists(System::String ^ categoryName);
public static bool Exists(string categoryName);
static member Exists : string -> bool
Public Shared Function Exists (categoryName As String) As Boolean
參數
- categoryName
- String
要注意的績效計數器類別名稱。
傳回
true若該類別已註冊;否則,。 false
例外狀況
參數 categoryName 為 null。
參數 categoryName 為空字串(“”)。
基礎系統 API 的呼叫失敗。
未取得管理權限執行的程式碼嘗試讀取效能計數器。
範例
以下程式碼範例判斷是否 PerformanceCounterCategory 存在名為「orders」的物件。 如果沒有,則會使用PerformanceCounterCategory包含兩個效能計數器的物件來建立該CounterCreationDataCollection物件。
if (!PerformanceCounterCategory.Exists("Orders"))
{
CounterCreationData milk = new CounterCreationData();
milk.CounterName = "milk";
milk.CounterType = PerformanceCounterType.NumberOfItems32;
CounterCreationData milkPerSecond = new CounterCreationData();
milkPerSecond.CounterName = "milk orders/second";
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32;
CounterCreationDataCollection ccds = new CounterCreationDataCollection();
ccds.Add(milkPerSecond);
ccds.Add(milk);
PerformanceCounterCategory.Create("Orders", "Number of processed orders",
PerformanceCounterCategoryType.SingleInstance, ccds);
}
If Not PerformanceCounterCategory.Exists("Orders") Then
Dim milk As New CounterCreationData()
milk.CounterName = "milk"
milk.CounterType = PerformanceCounterType.NumberOfItems32
Dim milkPerSecond As New CounterCreationData()
milkPerSecond.CounterName = "milk orders/second"
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32
Dim ccds As New CounterCreationDataCollection()
ccds.Add(milkPerSecond)
ccds.Add(milk)
PerformanceCounterCategory.Create("Orders", "Number of processed orders", _
PerformanceCounterCategoryType.SingleInstance, ccds)
End If
備註
使用此 Exists 方法可能導致明顯的效能損失,同時檢查機器上所有效能計數器的可用性。 如果你只寫入效能計數器,可以避免全域搜尋效能計數器,方法是在應用程式安裝時建立該效能計數器,並在存取計數器時假設該類別存在。 讀取效能計數器時無法避免效能計數器搜尋。
Note
要讀取 Windows Vista 及以後版本、Windows XP Professional x64 版或 Windows Server 2003 中非互動式登入會話的效能計數器,您必須是效能監控使用者群組的成員或擁有管理員權限。
若要避免提高許可權以存取 Windows Vista 和更新版本中的性能計數器,請將您自己新增至性能監視器使用者群組。
在 Windows Vista 和更新版本中,用戶帳戶控制 (UAC) 會決定用戶的許可權。 如果你是內建管理員群組的成員,你會被分配兩個執行時存取權杖:一個標準使用者存取權杖和一個管理員存取權杖。 根據預設,您處於標準使用者角色。 要執行存取效能計數器的程式碼,你必須先將權限從標準使用者提升為管理員。 當您以滑鼠右鍵按下應用程式圖示,並指出您想要以系統管理員身分執行,即可啟動應用程式。
另請參閱
適用於
Exists(String, String)
判斷該類別是否註冊在指定的電腦上。
public:
static bool Exists(System::String ^ categoryName, System::String ^ machineName);
public static bool Exists(string categoryName, string machineName);
static member Exists : string * string -> bool
Public Shared Function Exists (categoryName As String, machineName As String) As Boolean
參數
- categoryName
- String
要注意的績效計數器類別名稱。
- machineName
- String
要檢查該類別的電腦名稱。
傳回
true若該類別已註冊;否則,。 false
例外狀況
參數 categoryName 為 null。
基礎系統 API 的呼叫失敗。
找不到網路路徑。
範例
以下範例判斷 PerformanceCounterCategory 是否存在一個被命名的 Orders 物件。 若不存在,範例則使用PerformanceCounterCategory包含兩個效能計數器的物件來建立該CounterCreationDataCollection物件。
if (!PerformanceCounterCategory.Exists("Orders"))
{
CounterCreationData milk = new CounterCreationData();
milk.CounterName = "milk";
milk.CounterType = PerformanceCounterType.NumberOfItems32;
CounterCreationData milkPerSecond = new CounterCreationData();
milkPerSecond.CounterName = "milk orders/second";
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32;
CounterCreationDataCollection ccds = new CounterCreationDataCollection();
ccds.Add(milkPerSecond);
ccds.Add(milk);
PerformanceCounterCategory.Create("Orders", "Number of processed orders",
PerformanceCounterCategoryType.SingleInstance, ccds);
}
If Not PerformanceCounterCategory.Exists("Orders") Then
Dim milk As New CounterCreationData()
milk.CounterName = "milk"
milk.CounterType = PerformanceCounterType.NumberOfItems32
Dim milkPerSecond As New CounterCreationData()
milkPerSecond.CounterName = "milk orders/second"
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32
Dim ccds As New CounterCreationDataCollection()
ccds.Add(milkPerSecond)
ccds.Add(milk)
PerformanceCounterCategory.Create("Orders", "Number of processed orders", _
PerformanceCounterCategoryType.SingleInstance, ccds)
End If
備註
使用此 Exists 方法可能導致明顯的效能損失,同時檢查機器上所有效能計數器的可用性。 如果你只寫入效能計數器,可以避免全域搜尋效能計數器,方法是在應用程式安裝時建立該效能計數器,並在存取計數器時假設該類別存在。 讀取效能計數器時無法避免效能計數器搜尋。
Note
要讀取 Windows Vista 及以後版本、Windows XP Professional x64 版或 Windows Server 2003 中非互動式登入會話的效能計數器,您必須是效能監控使用者群組的成員或擁有管理員權限。
若要避免提高許可權以存取 Windows Vista 和更新版本中的性能計數器,請將您自己新增至性能監視器使用者群組。
在 Windows Vista 和更新版本中,用戶帳戶控制 (UAC) 會決定用戶的許可權。 如果你是內建管理員群組的成員,你會被分配兩個執行時存取權杖:一個標準使用者存取權杖和一個管理員存取權杖。 根據預設,您處於標準使用者角色。 要執行存取效能計數器的程式碼,你必須先將權限從標準使用者提升為管理員。 當您以滑鼠右鍵按下應用程式圖示,並指出您想要以系統管理員身分執行,即可啟動應用程式。