PerformanceCounterCategory.Create 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í.
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 |
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)
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.
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)
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.
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)
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)
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.
- categoryType
- PerformanceCounterCategoryType
Uno de los valores de PerformanceCounterCategoryType.
- 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.
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.