PerformanceCounterCategory.InstanceExists (Método) (String)
Ensamblado: System (en system.dll)
public boolean InstanceExists ( String instanceName )
public function InstanceExists ( instanceName : String ) : boolean
No aplicable.
Parámetros
- instanceName
Instancia de objeto de rendimiento de esta categoría de contadores de rendimiento que se va a buscar.
Valor devuelto
Es true si la categoría contiene la instancia de objeto de rendimiento especificada; de lo contrario, es false.| Tipo de excepción | Condición |
|---|---|
| El valor de la propiedad CategoryName es referencia null (Nothing en Visual Basic). Es posible que no se haya establecido la propiedad. | |
| El valor del parámetro instanceName es referencia null (Nothing en Visual Basic). | |
| Se ha producido un error en la llamada a una API del sistema subyacente. | |
| Código que se ejecuta sin privilegios administrativos para intentar leer un contador de rendimiento. |
Esta sobrecarga de InstanceExists no es static. Es necesario crear un objeto PerformanceCounterCategory y establecer la propiedad CategoryName.
Nota: |
|---|
| Para leer contadores de rendimiento, debe tener privilegios administrativos. En Windows Vista, el Control de cuentas de usuario (UAC) determina los privilegios de un usuario. Si es miembro del grupo Administradores integrados, se le asignarán dos símbolos (tokens) de acceso en tiempo de ejecución: un símbolo (token) de acceso de usuario estándar y un símbolo (token) de acceso de administrador. De forma predeterminada, se le asignará la función de usuario estándar. Para ejecutar el código que tiene acceso a los contadores de rendimiento, primero debe elevar el nivel de sus privilegios de usuario estándar a administrador. Esto se puede hacer cuando se inicia una aplicación haciendo clic con el botón secundario del mouse en el icono de la aplicación e indicando que se desea ejecutar como administrador. |
En el ejemplo de código siguiente se determina si existe una instancia de PerformanceCounter en una PerformanceCounterCategory. Primero, se crea un objeto PerformanceCounterCategory con el constructor adecuado, basándose en si se ha especificado un nombre de equipo. A continuación, se utiliza el método InstanceExists(String) para determinar si existe la instancia especificada y, a continuación, se informa al usuario. Si no hay ningún nombre de instancia especificado, se utiliza en el ejemplo el nombre predeterminado de la instancia única.
public static void Main(string[] args) { string categoryName = ""; string instanceName = ""; string machineName = ""; bool objectExists = false; PerformanceCounterCategory pcc; const string SINGLE_INSTANCE_NAME = "systemdiagnosticsperfcounterlibsingleinstance"; // Copy the supplied arguments into the local variables. try { categoryName = args[0]; instanceName = args[1]; machineName = (args[2]=="."? "": args[2]); } catch(Exception ex) { // Ignore the exception from non-supplied arguments. } // Use the given instance name or use the default single-instance name. if (instanceName.Length==0) { instanceName = SINGLE_INSTANCE_NAME; } try { if (machineName.Length==0) { pcc = new PerformanceCounterCategory(categoryName); } else { pcc = new PerformanceCounterCategory(categoryName, machineName); } // Check whether the instance exists. // Use the per-instance overload of InstanceExists. objectExists = pcc.InstanceExists(instanceName); } catch(Exception ex) { Console.WriteLine("Unable to check for the existence of " + "instance \"{0}\" in category \"{1}\" on " + (machineName.Length>0? "computer \"{2}\":": "this computer:") + "\n" + ex.Message, instanceName, categoryName, machineName); return; } // Tell the user whether the instance exists. Console.WriteLine("Instance \"{0}\" " + (objectExists? "exists": "does not exist") + " in category \"{1}\" on " + (machineName.Length>0? "computer \"{2}\".": "this computer."), instanceName, pcc.CategoryName, pcc.MachineName); }
- PerformanceCounterPermission para leer las categorías de contador de rendimiento. Enumeración asociada: PerformanceCounterPermissionAccess.Read.
Nota: