PerformanceCounterCategory.Exists Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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)
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)
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.