Compartir a través de


PerformanceCounterCategory.Create Método

Definición

Registra en el sistema una categoría de contador de rendimiento personalizada y uno o más contadores.

Sobrecargas

Create(String, String, String, String)
Obsoletos.
Obsoletos.
Obsoletos.

Registra una categoría de contador de rendimiento personalizada que contiene un solo contador de tipo NumberOfItems32 en el equipo local.

Create(String, String, PerformanceCounterCategoryType, String, String)

Registra la categoría de contador de rendimiento personalizada que contiene un solo contador de tipo NumberOfItems32 en el equipo local.

Create(String, String, CounterCreationDataCollection)
Obsoletos.
Obsoletos.
Obsoletos.

Registra la categoría de contador de rendimiento personalizada que contiene los contadores especificados en el equipo local.

Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection)

Registra la categoría de contador de rendimiento personalizada que contiene los contadores especificados en el equipo local.

Create(String, String, String, String)

Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs

Precaución

This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. http://go.microsoft.com/fwlink/?linkid=14202

Precaución

This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. https://go.microsoft.com/fwlink/?linkid=14202

Precaución

This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.

Registra una categoría de contador de rendimiento personalizada que contiene un solo contador de tipo NumberOfItems32 en el equipo local.

public:
 static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::String ^ counterName, System::String ^ counterHelp);
[System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.  http://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
[System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.  https://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
[System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
[<System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.  http://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.  https://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.")>]
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, counterName As String, counterHelp As String) As PerformanceCounterCategory

Parámetros

categoryName
String

Nombre de la categoría de contador de rendimiento personalizada que se va a crear y registrar en el sistema.

categoryHelp
String

Descripción de la categoría personalizada.

counterName
String

Nombre de un nuevo contador de tipo NumberOfItems32 que se va a crear como parte de la nueva categoría.

counterHelp
String

Descripción del contador asociado a la nueva categoría personalizada.

Devoluciones

PerformanceCounterCategory que está asociado a la nueva categoría del sistema, u objeto de rendimiento.

Atributos

Excepciones

counterName es null o una cadena vacía ("").

O bien

Ya existe el contador especificado por el parámetro counterName.

o bien

counterName tiene una sintaxis no válida. Puede contener caracteres de barra diagonal inversa ("\") o tener una longitud superior a 80 caracteres.

Ya existe la categoría en el equipo local.

categoryName es null.

O bien

counterHelp es null.

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.

Ejemplos

En el ejemplo de código siguiente se crea un PerformanceCounterCategory y único PerformanceCounter texto de ayuda para cada uno, mediante el Create(String, String, String, String) método .

public static void Main(string[] args)
{
    string categoryName = "";
    string counterName = "";
    string categoryHelp = "";
    string counterHelp = "";
    PerformanceCounterCategory pcc;

    // Copy the supplied arguments into the local variables.
    try
    {
        categoryName = args[0];
        counterName = args[1];
        categoryHelp = args[2];
        counterHelp = args[3];
    }
    catch(Exception ex)
    {
        // Ignore the exception from non-supplied arguments.
    }

    Console.WriteLine("Category name: \"{0}\"", categoryName);
    Console.WriteLine("Category help: \"{0}\"", categoryHelp);
    Console.WriteLine("Counter name:  \"{0}\"", counterName);
    Console.WriteLine("Counter help:  \"{0}\"", counterHelp);

    // Use the Create overload that creates a single counter.
    try
    {
        pcc = PerformanceCounterCategory.Create(categoryName, categoryHelp, counterName, counterHelp);
        Console.WriteLine("Category \"{0}\" created.", pcc.CategoryName);
    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to create the above category and counter:" + "\n" + ex.Message);
    }
}
Sub Main(ByVal args() As String)
    Dim categoryName As String = ""
    Dim counterName As String = ""
    Dim categoryHelp As String = ""
    Dim counterHelp As String = ""
    Dim pcc As PerformanceCounterCategory

    ' Copy the supplied arguments into the local variables.
    Try
        categoryName = args(0)
        counterName = args(1)
        categoryHelp = args(2)
        counterHelp = args(3)
    Catch ex As Exception
        ' Ignore the exception from non-supplied arguments.
    End Try

    Console.WriteLine("Category name: ""{0}""", categoryName)
    Console.WriteLine("Category help: ""{0}""", categoryHelp)
    Console.WriteLine("Counter name:  ""{0}""", counterName)
    Console.WriteLine("Counter help:  ""{0}""", counterHelp)

    ' Use the Create overload that creates a single counter.
    Try
        pcc = PerformanceCounterCategory.Create( _
            categoryName, categoryHelp, counterName, counterHelp)
        Console.WriteLine("Category ""{0}"" created.", pcc.CategoryName)

    Catch ex As Exception
        Console.WriteLine( _
            "Unable to create the above category and counter:" & _
            vbCrLf & ex.Message)
    End Try
End Sub

Comentarios

Nota

Para leer 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 de Monitor de rendimiento o tener privilegios administrativos.

Para evitar tener que elevar los privilegios para acceder a los contadores de rendimiento en Windows Vista y versiones posteriores, agréguese al grupo usuarios de 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 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á el rol de usuario estándar. Para ejecutar el código que accede a los contadores de rendimiento, primero debe elevar sus privilegios del usuario estándar al administrador. Para ello, inicie una aplicación haciendo clic con el botón derecho en el icono de la aplicación e indique que desea ejecutarla como administrador.

Consulte también

Se aplica a

Create(String, String, PerformanceCounterCategoryType, String, String)

Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs

Registra la categoría de contador de rendimiento personalizada que contiene un solo contador de tipo NumberOfItems32 en el equipo local.

public:
 static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::Diagnostics::PerformanceCounterCategoryType categoryType, System::String ^ counterName, System::String ^ counterHelp);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.PerformanceCounterCategoryType categoryType, string counterName, string counterHelp);
static member Create : string * string * System.Diagnostics.PerformanceCounterCategoryType * string * string -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, categoryType As PerformanceCounterCategoryType, counterName As String, counterHelp As String) As PerformanceCounterCategory

Parámetros

categoryName
String

Nombre de la categoría de contador de rendimiento personalizada que se va a crear y registrar en el sistema.

categoryHelp
String

Descripción de la categoría personalizada.

categoryType
PerformanceCounterCategoryType

Uno de los valores de PerformanceCounterCategoryType que especifica si la categoría es MultiInstance, SingleInstance o Unknown.

counterName
String

Nombre de un nuevo contador que se va a crear como parte de la nueva categoría.

counterHelp
String

Descripción del contador asociado a la nueva categoría personalizada.

Devoluciones

PerformanceCounterCategory que está asociado a la nueva categoría del sistema, u objeto de rendimiento.

Excepciones

counterName es null o una cadena vacía ("").

O bien

Ya existe el contador especificado por el parámetro counterName.

o bien

counterName tiene una sintaxis no válida. Puede contener caracteres de barra diagonal inversa ("\") o tener una longitud superior a 80 caracteres.

Ya existe la categoría en el equipo local.

categoryName es null.

O bien

counterHelp es null.

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.

Ejemplos

En el ejemplo de código siguiente se muestra el uso del Create método . En el ejemplo se muestra cómo crear una categoría de contador de rendimiento de instancia única personalizada.

Console.WriteLine("Creating Inventory custom counter");
if (!PerformanceCounterCategory.Exists("Inventory"))
    PerformanceCounterCategory.Create("Inventory",
        "Truck inventory",
        PerformanceCounterCategoryType.SingleInstance,
        "Trucks", "Number of trucks on hand");
Console.WriteLine("Creating Inventory custom counter")
If Not PerformanceCounterCategory.Exists("Inventory") Then
    PerformanceCounterCategory.Create("Inventory", "Truck inventory", PerformanceCounterCategoryType.SingleInstance, "Trucks", "Number of trucks on hand")
End If

Comentarios

El categoryType parámetro especifica si la categoría del contador de rendimiento es de instancia única o de varias instancias. De forma predeterminada, una categoría es una instancia única cuando se crea y se convierte en instancias múltiples cuando se agrega otra instancia. Las categorías se crean cuando se configura una aplicación y se agregan instancias en tiempo de ejecución. En las versiones 1.0 y 1.1 de .NET Framework, no es necesario saber si una categoría de contador de rendimiento es de instancias múltiples o de instancia única. En .NET Framework 2.0, la PerformanceCounterCategoryType enumeración se usa para indicar si un contador de rendimiento puede tener varias instancias.

Las categorías de contadores de rendimiento instaladas con .NET Framework 2.0 usan memoria compartida independiente, con cada categoría de contador de rendimiento que tenga su propia memoria. Puede especificar el tamaño de la memoria compartida independiente mediante la creación de un DWORD denominado FileMappingSize en la clave del Registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nombre> de< categoría\Performance. El valor FileMappingSize se establece en el tamaño de memoria compartida de la categoría. El tamaño predeterminado es 131072 decimal. Si el valor FileMappingSize no está presente, se usa el valor de fileMappingSize atributo del elemento especificado en el archivo Machine.config, lo que provoca una sobrecarga adicional para el performanceCounters procesamiento de archivos de configuración. Puede realizar una mejora del rendimiento para el inicio de la aplicación estableciendo el tamaño de asignación de archivos en el Registro.

Nota

Se recomienda encarecidamente crear nuevas categorías de contadores de rendimiento durante la instalación de la aplicación, no durante la ejecución de la aplicación. Esto permite que el sistema operativo actualice su lista de categorías de contadores de rendimiento registrados. Si no se ha actualizado la lista, se producirá un error al intentar usar la categoría.

Nota

Para leer 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 de Monitor de rendimiento o tener privilegios administrativos.

Para evitar tener que elevar los privilegios para acceder a los contadores de rendimiento en Windows Vista y versiones posteriores, agréguese al grupo usuarios de 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 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á el rol de usuario estándar. Para ejecutar el código que accede a los contadores de rendimiento, primero debe elevar sus privilegios del usuario estándar al administrador. Para ello, inicie una aplicación haciendo clic con el botón derecho en el icono de la aplicación e indique que desea ejecutarla como administrador.

Consulte también

Se aplica a

Create(String, String, CounterCreationDataCollection)

Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs

Precaución

This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. http://go.microsoft.com/fwlink/?linkid=14202

Precaución

This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. https://go.microsoft.com/fwlink/?linkid=14202

Precaución

This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.

Registra la categoría de contador de rendimiento personalizada que contiene los contadores especificados en el equipo local.

public:
 static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::Diagnostics::CounterCreationDataCollection ^ counterData);
[System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
[System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.  https://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
[System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
[<System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.  https://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.")>]
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, counterData As CounterCreationDataCollection) As PerformanceCounterCategory

Parámetros

categoryName
String

Nombre de la categoría de contador de rendimiento personalizada que se va a crear y registrar en el sistema.

categoryHelp
String

Descripción de la categoría personalizada.

counterData
CounterCreationDataCollection

CounterCreationDataCollection que especifica los contadores que se van a crear como parte de la nueva categoría.

Devoluciones

PerformanceCounterCategory que está asociado a la nueva categoría personalizada, u objeto de rendimiento.

Atributos

Excepciones

Un nombre de contador especificado dentro de la colección counterData es null o una cadena vacía ("").

o bien

Un contador especificado dentro de la colección counterData ya existe.

o bien

El parámetro counterName tiene una sintaxis no válida. Puede contener caracteres de barra diagonal inversa ("\") o tener una longitud superior a 80 caracteres.

El parámetro categoryName es null.

Ya existe la categoría en el equipo local.

o bien

El diseño de la colección counterData es incorrecto para los contadores base. Un contador de tipo AverageCount64, AverageTimer32, CounterMultiTimer, CounterMultiTimerInverse, CounterMultiTimer100Ns, CounterMultiTimer100NsInverse, RawFraction, SampleFraction o SampleCounter debe ir seguido inmediatamente de uno de los tipos de contador base (AverageBase, MultiBase, RawBase o SampleBase).

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.

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 = 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

Comentarios

Nota

Para leer 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 de Monitor de rendimiento o tener privilegios administrativos.

Para evitar tener que elevar los privilegios para acceder a los contadores de rendimiento en Windows Vista y versiones posteriores, agréguese al grupo usuarios de 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 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á el rol de usuario estándar. Para ejecutar el código que accede a los contadores de rendimiento, primero debe elevar los privilegios del usuario estándar al administrador. Para ello, inicie una aplicación haciendo clic con el botón derecho en el icono de la aplicación e indique que desea ejecutarla como administrador.

Consulte también

Se aplica a

Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection)

Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs

Registra la categoría de contador de rendimiento personalizada que contiene los contadores especificados en el equipo local.

public:
 static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::Diagnostics::PerformanceCounterCategoryType categoryType, System::Diagnostics::CounterCreationDataCollection ^ counterData);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.PerformanceCounterCategoryType categoryType, System.Diagnostics.CounterCreationDataCollection counterData);
static member Create : string * string * System.Diagnostics.PerformanceCounterCategoryType * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, categoryType As PerformanceCounterCategoryType, counterData As CounterCreationDataCollection) As PerformanceCounterCategory

Parámetros

categoryName
String

Nombre de la categoría de contador de rendimiento personalizada que se va a crear y registrar en el sistema.

categoryHelp
String

Descripción de la categoría personalizada.

counterData
CounterCreationDataCollection

CounterCreationDataCollection que especifica los contadores que se van a crear como parte de la nueva categoría.

Devoluciones

PerformanceCounterCategory que está asociado a la nueva categoría personalizada, u objeto de rendimiento.

Excepciones

Un nombre de contador especificado dentro de la colección counterData es null o una cadena vacía ("").

o bien

Un contador especificado dentro de la colección counterData ya existe.

o bien

counterName tiene una sintaxis no válida. Puede contener caracteres de barra diagonal inversa ("\") o tener una longitud superior a 80 caracteres.

categoryName es null.

O bien

counterData es null.

El valor de categoryType está fuera del intervalo de los valores siguientes: MultiInstance, SingleInstance o Unknown.

Ya existe la categoría en el equipo local.

o bien

El diseño de la colección counterData es incorrecto para los contadores base. Un contador de tipo AverageCount64, AverageTimer32, CounterMultiTimer, CounterMultiTimerInverse, CounterMultiTimer100Ns, CounterMultiTimer100NsInverse, RawFraction, SampleFraction o SampleCounter debe ir seguido inmediatamente de uno de los tipos de contador base (AverageBase, MultiBase, RawBase o SampleBase).

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.

Ejemplos

En el ejemplo de código siguiente se muestra el uso del Create método . En el ejemplo se muestra cómo crear una categoría de contador de rendimiento personalizado de varias instancias para el número de pedidos por segundo.

CounterCreationData data1 = new CounterCreationData("Trucks",
    "Number of orders", PerformanceCounterType.NumberOfItems32);
CounterCreationData data2 = new CounterCreationData("Rate of sales",
    "Orders/second", PerformanceCounterType.RateOfCountsPerSecond32);
CounterCreationDataCollection ccds = new CounterCreationDataCollection();
ccds.Add(data1);
ccds.Add(data2);
Console.WriteLine("Creating Orders custom counter.");
if (!PerformanceCounterCategory.Exists("Orders"))
    PerformanceCounterCategory.Create("Orders",
        "Processed orders",
        PerformanceCounterCategoryType.MultiInstance,
        ccds);
Dim data1 As New CounterCreationData("Trucks", "Number of orders", PerformanceCounterType.NumberOfItems32)
Dim data2 As New CounterCreationData("Rate of sales", "Orders/second", PerformanceCounterType.RateOfCountsPerSecond32)
Dim ccds As New CounterCreationDataCollection()
ccds.Add(data1)
ccds.Add(data2)
Console.WriteLine("Creating Orders custom counter.")
If Not PerformanceCounterCategory.Exists("Orders") Then
    PerformanceCounterCategory.Create("Orders", "Processed orders", PerformanceCounterCategoryType.MultiInstance, ccds)
End If

Comentarios

El categoryType parámetro especifica si la categoría del contador de rendimiento es de instancia única o de varias instancias. De forma predeterminada, una categoría es de instancia única cuando se crea y se convierte en instancias múltiples cuando se agrega otra instancia. Las categorías se crean cuando se configura una aplicación y las instancias se agregan en tiempo de ejecución. En las versiones 1.0 y 1.1 de .NET Framework, no es necesario saber si una categoría de contador de rendimiento es de varias instancias o de instancia única. En .NET Framework 2.0, la PerformanceCounterCategoryType enumeración se usa para indicar si un contador de rendimiento puede tener varias instancias.

Las categorías de contadores de rendimiento instaladas con .NET Framework 2.0 usan memoria compartida independiente, con cada categoría de contador de rendimiento con su propia memoria. Puede especificar el tamaño de la memoria compartida independiente creando un DWORD denominado FileMappingSize en la clave del Registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nombre> de< categoría\Rendimiento. El valor FileMappingSize se establece en el tamaño de memoria compartida de la categoría. El tamaño predeterminado es 131072 decimal. Si el valor FileMappingSize no está presente, se usa el fileMappingSize valor de atributo del elemento especificado en el archivo Machine.config, lo que provoca una sobrecarga adicional para el performanceCounters procesamiento de archivos de configuración. Puede obtener una mejora del rendimiento para el inicio de la aplicación estableciendo el tamaño de asignación de archivos en el Registro.

Nota

Se recomienda encarecidamente crear nuevas categorías de contadores de rendimiento durante la instalación de la aplicación, no durante la ejecución de la aplicación. Esto permite que el sistema operativo actualice su lista de categorías de contadores de rendimiento registrados. Si no se ha actualizado la lista, se producirá un error al intentar usar la categoría.

Nota

Para leer 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 de Monitor de rendimiento o tener privilegios administrativos.

Para evitar tener que elevar los privilegios para acceder a los contadores de rendimiento en Windows Vista y versiones posteriores, agréguese al grupo usuarios de 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 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á el rol de usuario estándar. Para ejecutar el código que accede a los contadores de rendimiento, primero debe elevar los privilegios del usuario estándar al administrador. Para ello, inicie una aplicación haciendo clic con el botón derecho en el icono de la aplicación e indique que desea ejecutarla como administrador.

Consulte también

Se aplica a