語言

PerformanceCounterCategory.Exists 方法

定義

判斷該類別是否已登錄於系統。

多載

名稱 Description
Exists(String)

判斷該類別是否註冊於本地電腦。

Exists(String, String)

判斷該類別是否註冊在指定的電腦上。

Exists(String)

來源:
PerformanceCounterCategory.cs
來源:
PerformanceCounterCategory.cs
來源:
PerformanceCounterCategory.cs
來源:
PerformanceCounterCategory.cs
來源:
PerformanceCounterCategory.cs
來源:
PerformanceCounterCategory.cs
來源:
PerformanceCounterCategory.cs
來源:
PerformanceCounterCategory.cs
來源:
PerformanceCounterCategory.cs

判斷該類別是否註冊於本地電腦。

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)

來源:
PerformanceCounterCategory.cs
來源:
PerformanceCounterCategory.cs
來源:
PerformanceCounterCategory.cs
來源:
PerformanceCounterCategory.cs
來源:
PerformanceCounterCategory.cs
來源:
PerformanceCounterCategory.cs
來源:
PerformanceCounterCategory.cs
來源:
PerformanceCounterCategory.cs
來源:
PerformanceCounterCategory.cs

判斷該類別是否註冊在指定的電腦上。

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。

參數 categoryName 為空字串(“”)。

-或-

machineName 參數無效。

基礎系統 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) 會決定用戶的許可權。 如果你是內建管理員群組的成員,你會被分配兩個執行時存取權杖:一個標準使用者存取權杖和一個管理員存取權杖。 根據預設,您處於標準使用者角色。 要執行存取效能計數器的程式碼,你必須先將權限從標準使用者提升為管理員。 當您以滑鼠右鍵按下應用程式圖示,並指出您想要以系統管理員身分執行,即可啟動應用程式。

另請參閱

適用於