PerformanceCounterCategory.Exists Metoda

Definicja

Określa, czy kategoria jest zarejestrowana w systemie.

Przeciążenia

Exists(String)

Określa, czy kategoria jest zarejestrowana na komputerze lokalnym.

Exists(String, String)

Określa, czy kategoria jest zarejestrowana na określonym komputerze.

Exists(String)

Źródło:
PerformanceCounterCategory.cs
Źródło:
PerformanceCounterCategory.cs
Źródło:
PerformanceCounterCategory.cs

Określa, czy kategoria jest zarejestrowana na komputerze lokalnym.

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

Parametry

categoryName
String

Nazwa kategorii licznika wydajności do wyszukania.

Zwraca

true jeśli kategoria jest zarejestrowana; w przeciwnym razie , false.

Wyjątki

Parametr categoryName ma wartość null.

Parametr categoryName jest pustym ciągiem ("").

Wywołanie podstawowego interfejsu API systemu nie powiodło się.

Kod wykonywany bez uprawnień administracyjnych, który próbował odczytać licznik wydajności.

Przykłady

Poniższy przykład kodu określa, czy PerformanceCounterCategory obiekt o nazwie "orders" istnieje. Jeśli nie, tworzy PerformanceCounterCategory obiekt przy użyciu CounterCreationDataCollection obiektu, który zawiera dwa liczniki wydajności.

if (  !PerformanceCounterCategory::Exists( "Orders" ) )
{
   CounterCreationData^ milk = gcnew CounterCreationData;
   milk->CounterName = "milk";
   milk->CounterType = PerformanceCounterType::NumberOfItems32;

   CounterCreationData^ milkPerSecond = gcnew CounterCreationData;
   milkPerSecond->CounterName = "milk orders/second";
   milkPerSecond->CounterType = PerformanceCounterType::RateOfCountsPerSecond32;

   CounterCreationDataCollection^ ccds = gcnew CounterCreationDataCollection;
   ccds->Add( milkPerSecond );
   ccds->Add( milk );
   PerformanceCounterCategory::Create( "Orders", "Number of processed orders", ccds );
}
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

Uwagi

Exists Użycie metody może spowodować zauważalną karę wydajności, podczas gdy wszystkie liczniki wydajności na maszynie są sprawdzane pod kątem dostępności. Jeśli piszesz tylko do licznika wydajności, możesz uniknąć wyszukiwanie globalne liczników wydajności, tworząc licznik wydajności podczas instalowania aplikacji i zakładając, że kategoria istnieje podczas uzyskiwania dostępu do licznika. Nie ma możliwości uniknięcia wyszukiwania licznika wydajności podczas odczytywania z liczników wydajności.

Uwaga

Aby odczytać liczniki wydajności z sesji logowania nieinterakcyjnego w systemie Windows Vista i nowszych, Windows XP Professional x64 Edition lub Windows Server 2003, musisz być członkiem grupy użytkownicy monitor wydajności lub mieć uprawnienia administracyjne.

Aby uniknąć konieczności podniesienia uprawnień dostępu do liczników wydajności w systemie Windows Vista i nowszych, dodaj siebie do grupy użytkownicy monitor wydajności.

W systemie Windows Vista i nowszych Kontrola konta użytkownika (UAC) określa uprawnienia użytkownika. Jeśli jesteś członkiem wbudowanej grupy Administratorzy, masz przypisane dwa tokeny dostępu w czasie wykonywania: token dostępu użytkownika standardowego i token dostępu administratora. Domyślnie jesteś w roli użytkownika standardowego. Aby wykonać kod, który uzyskuje dostęp do liczników wydajności, należy najpierw podnieść poziom uprawnień od użytkownika standardowego do administratora. Możesz to zrobić po uruchomieniu aplikacji, klikając prawym przyciskiem myszy ikonę aplikacji i wskazując, że chcesz uruchomić jako administrator.

Zobacz też

Dotyczy

Exists(String, String)

Źródło:
PerformanceCounterCategory.cs
Źródło:
PerformanceCounterCategory.cs
Źródło:
PerformanceCounterCategory.cs

Określa, czy kategoria jest zarejestrowana na określonym komputerze.

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

Parametry

categoryName
String

Nazwa kategorii licznika wydajności do wyszukania.

machineName
String

Nazwa komputera do zbadania pod kątem kategorii.

Zwraca

true jeśli kategoria jest zarejestrowana; w przeciwnym razie , false.

Wyjątki

Parametr categoryName ma wartość null.

Parametr categoryName jest pustym ciągiem ("").

-lub-

Parametr machineName jest nieprawidłowy.

Wywołanie podstawowego interfejsu API systemu nie powiodło się.

Nie można odnaleźć ścieżki sieciowej.

Obiekt wywołujący nie posiada wymaganych uprawnień.

-lub-

Kod wykonywany bez uprawnień administracyjnych, który próbował odczytać licznik wydajności.

Przykłady

Poniższy przykład określa, czy PerformanceCounterCategory obiekt o nazwie Orders istnieje. Jeśli obiekt nie istnieje, przykład tworzy PerformanceCounterCategory obiekt przy użyciu obiektu zawierającego CounterCreationDataCollection dwa liczniki wydajności.

if (  !PerformanceCounterCategory::Exists( "Orders" ) )
{
   CounterCreationData^ milk = gcnew CounterCreationData;
   milk->CounterName = "milk";
   milk->CounterType = PerformanceCounterType::NumberOfItems32;

   CounterCreationData^ milkPerSecond = gcnew CounterCreationData;
   milkPerSecond->CounterName = "milk orders/second";
   milkPerSecond->CounterType = PerformanceCounterType::RateOfCountsPerSecond32;

   CounterCreationDataCollection^ ccds = gcnew CounterCreationDataCollection;
   ccds->Add( milkPerSecond );
   ccds->Add( milk );
   PerformanceCounterCategory::Create( "Orders", "Number of processed orders", ccds );
}
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

Uwagi

Exists Użycie metody może spowodować zauważalną karę wydajności, podczas gdy wszystkie liczniki wydajności na maszynie są sprawdzane pod kątem dostępności. Jeśli piszesz tylko do licznika wydajności, możesz uniknąć wyszukiwanie globalne liczników wydajności, tworząc licznik wydajności podczas instalowania aplikacji i zakładając, że kategoria istnieje podczas uzyskiwania dostępu do licznika. Nie ma możliwości uniknięcia wyszukiwania licznika wydajności podczas odczytywania z liczników wydajności.

Uwaga

Aby odczytać liczniki wydajności z sesji logowania nieinterakcyjnego w systemie Windows Vista i nowszych, Windows XP Professional x64 Edition lub Windows Server 2003, musisz być członkiem grupy użytkownicy monitor wydajności lub mieć uprawnienia administracyjne.

Aby uniknąć konieczności podniesienia uprawnień dostępu do liczników wydajności w systemie Windows Vista i nowszych, dodaj siebie do grupy użytkownicy monitor wydajności.

W systemie Windows Vista i nowszych Kontrola konta użytkownika (UAC) określa uprawnienia użytkownika. Jeśli jesteś członkiem wbudowanej grupy Administratorzy, masz przypisane dwa tokeny dostępu w czasie wykonywania: token dostępu użytkownika standardowego i token dostępu administratora. Domyślnie jesteś w roli użytkownika standardowego. Aby wykonać kod, który uzyskuje dostęp do liczników wydajności, należy najpierw podnieść poziom uprawnień od użytkownika standardowego do administratora. Możesz to zrobić po uruchomieniu aplikacji, klikając prawym przyciskiem myszy ikonę aplikacji i wskazując, że chcesz uruchomić jako administrator.

Zobacz też

Dotyczy