PerformanceCounterCategory.Exists Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Determina si la categoría está registrada en el sistema.
Sobrecargas
| Nombre | Description |
|---|---|
| Exists(String) |
Determina si la categoría está registrada en el equipo local. |
| Exists(String, String) |
Determina si la categoría está registrada en el equipo especificado. |
Exists(String)
Determina si la categoría está registrada en el equipo local.
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
Parámetros
- categoryName
- String
Nombre de la categoría del contador de rendimiento que se va a buscar.
Devoluciones
true si la categoría está registrada; de lo contrario, false.
Excepciones
El categoryName parámetro es null.
El categoryName parámetro es una cadena vacía ("").
Error en una llamada a una API del sistema subyacente.
Código que se ejecuta sin privilegios administrativos intenta leer un contador de rendimiento.
Ejemplos
En el ejemplo de código siguiente se determina si existe un PerformanceCounterCategory objeto denominado "orders". Si no es así, crea el PerformanceCounterCategory objeto mediante un CounterCreationDataCollection objeto que contiene dos contadores de rendimiento.
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
Comentarios
El uso del Exists método puede dar lugar a una penalización de rendimiento notable, mientras que todos los contadores de rendimiento de la máquina se comprueban si hay disponibilidad. Si solo está escribiendo en un contador de rendimiento, puede evitar la búsqueda global de contadores de rendimiento mediante la creación del contador de rendimiento cuando se instala la aplicación y suponiendo que la categoría existe al acceder al contador. No hay ninguna manera de evitar la búsqueda de contadores de rendimiento al leer desde contadores de rendimiento.
Note
Para leer los contadores de rendimiento de una sesión de inicio de sesión no interactiva en Windows Vista y versiones posteriores, Windows XP Professional x64 Edition o Windows Server 2003, debe ser miembro del grupo Usuarios del Monitor de rendimiento o tener privilegios administrativos.
Para evitar tener que elevar sus privilegios para acceder a los contadores de rendimiento en Windows Vista y versiones posteriores, agréguese al grupo Usuarios del Monitor de rendimiento.
En Windows Vista y versiones posteriores, el Control de cuentas de usuario (UAC) determina los privilegios de un usuario. Si es miembro del grupo Administradores integrados, se le asignan dos tokens de acceso en tiempo de ejecución: un token de acceso de usuario estándar y un token de acceso de administrador. De forma predeterminada, está en el rol de usuario estándar. Para ejecutar el código que accede a los contadores de rendimiento, primero debe elevar sus privilegios de usuario estándar a administrador. Puede hacerlo al iniciar una aplicación haciendo clic con el botón derecho en el icono de la aplicación e indicando que desea ejecutar como administrador.
Consulte también
Se aplica a
Exists(String, String)
Determina si la categoría está registrada en el equipo especificado.
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
Parámetros
- categoryName
- String
Nombre de la categoría del contador de rendimiento que se va a buscar.
- machineName
- String
Nombre del equipo que se va a examinar para la categoría.
Devoluciones
true si la categoría está registrada; de lo contrario, false.
Excepciones
El categoryName parámetro es null.
El categoryName parámetro es una cadena vacía ("").
O bien
El machineName parámetro no es válido.
Error en una llamada a una API del sistema subyacente.
No se encuentra la ruta de acceso de red.
El autor de la llamada no tiene el permiso necesario.
O bien
Código que se ejecuta sin privilegios administrativos intenta leer un contador de rendimiento.
Ejemplos
En el ejemplo siguiente se determina si existe un PerformanceCounterCategory objeto denominado Orders . Si no existe, el ejemplo crea el PerformanceCounterCategory objeto mediante un CounterCreationDataCollection objeto que contiene dos contadores de rendimiento.
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
Comentarios
El uso del Exists método puede dar lugar a una penalización de rendimiento notable, mientras que todos los contadores de rendimiento de la máquina se comprueban si hay disponibilidad. Si solo está escribiendo en un contador de rendimiento, puede evitar la búsqueda global de contadores de rendimiento mediante la creación del contador de rendimiento cuando se instala la aplicación y suponiendo que la categoría existe al acceder al contador. No hay ninguna manera de evitar la búsqueda de contadores de rendimiento al leer desde contadores de rendimiento.
Note
Para leer los contadores de rendimiento de una sesión de inicio de sesión no interactiva en Windows Vista y versiones posteriores, Windows XP Professional x64 Edition o Windows Server 2003, debe ser miembro del grupo Usuarios del Monitor de rendimiento o tener privilegios administrativos.
Para evitar tener que elevar sus privilegios para acceder a los contadores de rendimiento en Windows Vista y versiones posteriores, agréguese al grupo Usuarios del Monitor de rendimiento.
En Windows Vista y versiones posteriores, el Control de cuentas de usuario (UAC) determina los privilegios de un usuario. Si es miembro del grupo Administradores integrados, se le asignan dos tokens de acceso en tiempo de ejecución: un token de acceso de usuario estándar y un token de acceso de administrador. De forma predeterminada, está en el rol de usuario estándar. Para ejecutar el código que accede a los contadores de rendimiento, primero debe elevar sus privilegios de usuario estándar a administrador. Puede hacerlo al iniciar una aplicación haciendo clic con el botón derecho en el icono de la aplicación e indicando que desea ejecutar como administrador.