PerformanceCounterCategory.Exists Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Avgör om kategorin är registrerad i systemet.
Överlagringar
| Name | Description |
|---|---|
| Exists(String) |
Avgör om kategorin är registrerad på den lokala datorn. |
| Exists(String, String) |
Avgör om kategorin är registrerad på den angivna datorn. |
Exists(String)
Avgör om kategorin är registrerad på den lokala datorn.
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
Parametrar
- categoryName
- String
Namnet på den prestandaräknare som du vill söka efter.
Returer
trueom kategorin är registrerad. annars . false
Undantag
Parametern categoryName är null.
Parametern categoryName är en tom sträng ("").
Ett anrop till ett underliggande system-API misslyckades.
Kod som körs utan administratörsbehörighet försökte läsa en prestandaräknare.
Exempel
I följande kodexempel avgörs om ett PerformanceCounterCategory objekt med namnet "orders" finns. Annars skapas objektet PerformanceCounterCategory med hjälp av ett CounterCreationDataCollection objekt som innehåller två prestandaräknare.
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
Kommentarer
Användning av Exists metoden kan resultera i en märkbar prestandastraff medan alla prestandaräknare på datorn kontrolleras för tillgänglighet. Om du bara skriver till en prestandaräknare kan du undvika den globala sökningen efter prestandaräknare genom att skapa prestandaräknaren när programmet installeras och anta att kategorin finns vid åtkomst till räknaren. Det finns inget sätt att undvika prestandaräknarens sökning vid läsning från prestandaräknare.
Note
Om du vill läsa prestandaräknare från en icke-interaktiv inloggningssession i Windows Vista och senare, Windows XP Professional x64 Edition eller Windows Server 2003, måste du antingen vara medlem i gruppen Performance Monitor Användare eller ha administratörsbehörighet.
För att undvika att behöva höja dina privilegier för att få åtkomst till prestandaräknare i Windows Vista och senare lägger du till dig själv i gruppen Performance Monitor Användare.
I Windows Vista och senare bestämmer UAC (User Account Control) en användares behörigheter. Om du är medlem i gruppen Inbyggda administratörer tilldelas du två åtkomsttoken för körning: en standardåtkomsttoken för användare och en administratörsåtkomsttoken. Som standard är du i standardanvändarrollen. Om du vill köra koden som kommer åt prestandaräknare måste du först höja dina privilegier från standardanvändare till administratör. Du kan göra detta när du startar ett program genom att högerklicka på programikonen och ange att du vill köra som administratör.
Se även
Gäller för
Exists(String, String)
Avgör om kategorin är registrerad på den angivna datorn.
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
Parametrar
- categoryName
- String
Namnet på den prestandaräknare som du vill söka efter.
- machineName
- String
Namnet på den dator som ska undersökas för kategorin.
Returer
trueom kategorin är registrerad. annars . false
Undantag
Parametern categoryName är null.
Parametern categoryName är en tom sträng ("").
-eller-
Parametern machineName är ogiltig.
Ett anrop till ett underliggande system-API misslyckades.
Det går inte att hitta nätverkssökvägen.
Anroparen har inte den behörighet som krävs.
-eller-
Kod som körs utan administratörsbehörighet försökte läsa en prestandaräknare.
Exempel
I följande exempel avgörs om ett PerformanceCounterCategory objekt med namnet Orders finns. Om det inte finns skapar PerformanceCounterCategory exemplet objektet med hjälp av ett CounterCreationDataCollection objekt som innehåller två prestandaräknare.
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
Kommentarer
Användning av Exists metoden kan resultera i en märkbar prestandastraff medan alla prestandaräknare på datorn kontrolleras för tillgänglighet. Om du bara skriver till en prestandaräknare kan du undvika den globala sökningen efter prestandaräknare genom att skapa prestandaräknaren när programmet installeras och anta att kategorin finns vid åtkomst till räknaren. Det finns inget sätt att undvika prestandaräknarens sökning vid läsning från prestandaräknare.
Note
Om du vill läsa prestandaräknare från en icke-interaktiv inloggningssession i Windows Vista och senare, Windows XP Professional x64 Edition eller Windows Server 2003, måste du antingen vara medlem i gruppen Performance Monitor Användare eller ha administratörsbehörighet.
För att undvika att behöva höja dina privilegier för att få åtkomst till prestandaräknare i Windows Vista och senare lägger du till dig själv i gruppen Performance Monitor Användare.
I Windows Vista och senare bestämmer UAC (User Account Control) en användares behörigheter. Om du är medlem i gruppen Inbyggda administratörer tilldelas du två åtkomsttoken för körning: en standardåtkomsttoken för användare och en administratörsåtkomsttoken. Som standard är du i standardanvändarrollen. Om du vill köra koden som kommer åt prestandaräknare måste du först höja dina privilegier från standardanvändare till administratör. Du kan göra detta när du startar ett program genom att högerklicka på programikonen och ange att du vill köra som administratör.