PerformanceCounterCategory.Create Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Registra uma categoria de contador de desempenho personalizado e um ou mais contadores com o sistema.
Sobrecargas
Create(String, String, String, String) |
Obsoleto.
Obsoleto.
Obsoleto.
Registra uma categoria do contador de desempenho personalizado que contém um único contador do tipo |
Create(String, String, PerformanceCounterCategoryType, String, String) |
Registra a categoria do contador de desempenho personalizado que contém um único contador do tipo NumberOfItems32 no computador local. |
Create(String, String, CounterCreationDataCollection) |
Obsoleto.
Obsoleto.
Obsoleto.
Registra a categoria do contador de desempenho personalizado que contém os contadores especificados no computador local. |
Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection) |
Registra a categoria do contador de desempenho personalizado que contém os contadores especificados no computador local. |
Create(String, String, String, String)
Cuidado
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
Cuidado
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
Cuidado
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 uma categoria do contador de desempenho personalizado que contém um único contador do tipo NumberOfItems32
no computador 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
O nome da categoria do contador de desempenho personalizado a ser criada e registrada no sistema.
- categoryHelp
- String
Uma descrição da categoria personalizada.
- counterName
- String
O nome de um novo contador, do tipo NumberOfItems32
, a ser criado como parte da nova categoria.
- counterHelp
- String
Uma descrição do contador associado à nova categoria personalizada.
Retornos
Um PerformanceCounterCategory associado à nova categoria do sistema ou ao objeto de desempenho.
- Atributos
Exceções
counterName
é null
ou é uma cadeia de caracteres vazia ("").
- ou -
O contador especificado por counterName
já existe.
- ou -
O counterName
tem uma sintaxe inválida. Pode conter caracteres de barra invertida (“\”) ou ter um tamanho maior que 80 caracteres.
A categoria já existe no computador local.
Falha ao chamar uma API do sistema subjacente.
Um código em execução sem privilégios administrativos tentou ler um contador de desempenho.
Exemplos
O exemplo de código a seguir cria um e um PerformanceCounterCategory único PerformanceCounter com texto de ajuda para cada um, usando o 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
Comentários
Observação
Para ler contadores de desempenho de uma sessão de logon não interativa no Windows Vista e posterior, Windows XP Professional x64 Edition ou Windows Server 2003, você deve ser membro do grupo usuários Monitor de Desempenho ou ter privilégios administrativos.
Para evitar ter que elevar seus privilégios para acessar contadores de desempenho no Windows Vista e posterior, adicione-se ao grupo Monitor de Desempenho Usuários.
No Windows Vista e posterior, UAC (Controle de Conta de Usuário) determina os privilégios de um usuário. Se for um membro do grupo Administradores Internos, você receberá dois tokens de acesso do tempo de execução: um token de acesso do usuário padrão e um token de acesso do administrador. Por padrão, você está na função de usuário padrão. Para executar o código que acessa contadores de desempenho, primeiro você deve elevar seus privilégios de usuário padrão para administrador. Você pode fazer isso ao iniciar um aplicativo, clicando com o botão direito do mouse no ícone do aplicativo e indicando que você deseja executar como administrador.
Confira também
Aplica-se a
Create(String, String, PerformanceCounterCategoryType, String, String)
Registra a categoria do contador de desempenho personalizado que contém um único contador do tipo NumberOfItems32 no computador 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
O nome da categoria do contador de desempenho personalizado a ser criada e registrada no sistema.
- categoryHelp
- String
Uma descrição da categoria personalizada.
- categoryType
- PerformanceCounterCategoryType
Um dos valores PerformanceCounterCategoryType que especifica se a categoria é MultiInstance, SingleInstance ou Unknown.
- counterName
- String
O nome de um novo contador a ser criado como parte da nova categoria.
- counterHelp
- String
Uma descrição do contador associado à nova categoria personalizada.
Retornos
Um PerformanceCounterCategory associado à nova categoria do sistema ou ao objeto de desempenho.
Exceções
counterName
é null
ou é uma cadeia de caracteres vazia ("").
- ou -
O contador especificado por counterName
já existe.
- ou -
O counterName
tem uma sintaxe inválida. Pode conter caracteres de barra invertida (“\”) ou ter um tamanho maior que 80 caracteres.
A categoria já existe no computador local.
Falha ao chamar uma API do sistema subjacente.
Um código em execução sem privilégios administrativos tentou ler um contador de desempenho.
Exemplos
O exemplo de código a seguir mostra o uso do Create método . O exemplo mostra como criar uma categoria de contador de desempenho de instância ú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
Comentários
O categoryType
parâmetro especifica se a categoria do contador de desempenho é de instância única ou de várias instâncias. Por padrão, uma categoria é de instância única quando é criada e se torna de várias instâncias quando outra instância é adicionada. As categorias são criadas quando um aplicativo é configurado e as instâncias são adicionadas em tempo de execução. No .NET Framework versões 1.0 e 1.1, não é necessário saber se uma categoria de contador de desempenho é de várias instâncias ou de instância única. No .NET Framework 2.0, a PerformanceCounterCategoryType enumeração é usada para indicar se um contador de desempenho pode ter várias instâncias.
As categorias de contador de desempenho instaladas com o .NET Framework 2.0 usam memória compartilhada separada, com cada categoria de contador de desempenho tendo sua própria memória. Você pode especificar o tamanho da memória compartilhada separada criando um DWORD chamado FileMappingSize na chave do Registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<nome> da categoria\Desempenho. O valor FileMappingSize é definido como o tamanho da memória compartilhada da categoria. O tamanho padrão é 131072 decimal. Se o valor FileMappingSize não estiver presente, o valor do fileMappingSize
atributo para o performanceCounters
elemento especificado no arquivo Machine.config será usado, causando sobrecarga adicional para o processamento do arquivo de configuração. Você pode realizar uma melhoria de desempenho para a inicialização do aplicativo definindo o tamanho do mapeamento de arquivo no Registro.
Observação
É altamente recomendável que novas categorias de contador de desempenho sejam criadas durante a instalação do aplicativo, não durante a execução do aplicativo. Isso permite que o sistema operacional atualize sua lista de categorias de contadores de desempenho registrados. Se a lista não tiver sido atualizada, a tentativa de usar a categoria falhará.
Observação
Para ler contadores de desempenho de uma sessão de logon não interativa no Windows Vista e posterior, Windows XP Professional x64 Edition ou Windows Server 2003, você deve ser membro do grupo usuários Monitor de Desempenho ou ter privilégios administrativos.
Para evitar ter que elevar seus privilégios para acessar contadores de desempenho no Windows Vista e posterior, adicione-se ao grupo Monitor de Desempenho Usuários.
No Windows Vista e posterior, UAC (Controle de Conta de Usuário) determina os privilégios de um usuário. Se for um membro do grupo Administradores Internos, você receberá dois tokens de acesso do tempo de execução: um token de acesso do usuário padrão e um token de acesso do administrador. Por padrão, você está na função de usuário padrão. Para executar o código que acessa contadores de desempenho, primeiro você deve elevar seus privilégios de usuário padrão para administrador. Você pode fazer isso ao iniciar um aplicativo, clicando com o botão direito do mouse no ícone do aplicativo e indicando que você deseja executar como administrador.
Confira também
Aplica-se a
Create(String, String, CounterCreationDataCollection)
Cuidado
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
Cuidado
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
Cuidado
This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.
Registra a categoria do contador de desempenho personalizado que contém os contadores especificados no computador 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
O nome da categoria do contador de desempenho personalizado a ser criada e registrada no sistema.
- categoryHelp
- String
Uma descrição da categoria personalizada.
- counterData
- CounterCreationDataCollection
Um CounterCreationDataCollection que especifica os contadores a serem criados como parte da nova categoria.
Retornos
Um PerformanceCounterCategory associado à nova categoria personalizada ou ao objeto de desempenho.
- Atributos
Exceções
Um nome de contador especificado na coleção counterData
é null
ou uma cadeia de caracteres vazia ("").
- ou -
Um contador especificado na coleção counterData
já existe.
- ou -
O parâmetro counterName
tem uma sintaxe inválida. Pode conter caracteres de barra invertida (“\”) ou ter um tamanho maior que 80 caracteres.
O parâmetro categoryName
é null
.
A categoria já existe no computador local.
- ou -
O layout da coleção counterData
está incorreto em relação aos contadores base. Um contador do tipo AverageCount64
, AverageTimer32
, CounterMultiTimer
, CounterMultiTimerInverse
, CounterMultiTimer100Ns
, CounterMultiTimer100NsInverse
, RawFraction
, SampleFraction
ou SampleCounter
deve ser seguido imediatamente por um dos tipos de contador base (AverageBase
, MultiBase
, RawBase
ou SampleBase
).
Falha ao chamar uma API do sistema subjacente.
Um código em execução sem privilégios administrativos tentou ler um contador de desempenho.
Exemplos
O exemplo de código a seguir determina se existe um PerformanceCounterCategory objeto chamado "orders". Caso contrário, ele cria o PerformanceCounterCategory objeto usando um CounterCreationDataCollection objeto que contém dois contadores de desempenho.
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
Comentários
Observação
Para ler contadores de desempenho de uma sessão de logon não interativa no Windows Vista e posterior, Windows XP Professional x64 Edition ou Windows Server 2003, você deve ser membro do grupo Monitor de Desempenho Usuários ou ter privilégios administrativos.
Para evitar ter que elevar seus privilégios para acessar contadores de desempenho no Windows Vista e posteriores, adicione-se ao grupo Monitor de Desempenho Usuários.
No Windows Vista e posterior, UAC (Controle de Conta de Usuário) determina os privilégios de um usuário. Se for um membro do grupo Administradores Internos, você receberá dois tokens de acesso do tempo de execução: um token de acesso do usuário padrão e um token de acesso do administrador. Por padrão, você está na função de usuário padrão. Para executar o código que acessa contadores de desempenho, primeiro você deve elevar seus privilégios de usuário padrão para administrador. Você pode fazer isso ao iniciar um aplicativo, clicando com o botão direito do mouse no ícone do aplicativo e indicando que você deseja executar como administrador.
Confira também
Aplica-se a
Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection)
Registra a categoria do contador de desempenho personalizado que contém os contadores especificados no computador 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
O nome da categoria do contador de desempenho personalizado a ser criada e registrada no sistema.
- categoryHelp
- String
Uma descrição da categoria personalizada.
- categoryType
- PerformanceCounterCategoryType
Um dos valores de PerformanceCounterCategoryType.
- counterData
- CounterCreationDataCollection
Um CounterCreationDataCollection que especifica os contadores a serem criados como parte da nova categoria.
Retornos
Um PerformanceCounterCategory associado à nova categoria personalizada ou ao objeto de desempenho.
Exceções
Um nome de contador especificado na coleção counterData
é null
ou uma cadeia de caracteres vazia ("").
- ou -
Um contador especificado na coleção counterData
já existe.
- ou -
O counterName
tem uma sintaxe inválida. Pode conter caracteres de barra invertida (“\”) ou ter um tamanho maior que 80 caracteres.
O valor categoryType
está fora do intervalo dos seguintes valores: MultiInstance
, SingleInstance
ou Unknown
.
A categoria já existe no computador local.
- ou -
O layout da coleção counterData
está incorreto em relação aos contadores base. Um contador do tipo AverageCount64
, AverageTimer32
, CounterMultiTimer
, CounterMultiTimerInverse
, CounterMultiTimer100Ns
, CounterMultiTimer100NsInverse
, RawFraction
, SampleFraction
ou SampleCounter
deve ser seguido imediatamente por um dos tipos de contador base (AverageBase
, MultiBase
, RawBase
ou SampleBase
).
Falha ao chamar uma API do sistema subjacente.
Um código em execução sem privilégios administrativos tentou ler um contador de desempenho.
Exemplos
O exemplo de código a seguir mostra o uso do Create método . O exemplo mostra como criar uma categoria personalizada de contador de desempenho de várias instâncias para o 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
Comentários
O categoryType
parâmetro especifica se a categoria do contador de desempenho é de instância única ou de várias instâncias. Por padrão, uma categoria é de instância única quando é criada e se torna várias instâncias quando outra instância é adicionada. As categorias são criadas quando um aplicativo é configurado e as instâncias são adicionadas em tempo de execução. No .NET Framework versões 1.0 e 1.1, não é necessário saber se uma categoria de contador de desempenho é de várias instâncias ou de instância única. No .NET Framework 2.0, a PerformanceCounterCategoryType enumeração é usada para indicar se um contador de desempenho pode ter várias instâncias.
As categorias de contador de desempenho instaladas com o .NET Framework 2.0 usam memória compartilhada separada, com cada categoria de contador de desempenho tendo sua própria memória. Você pode especificar o tamanho da memória compartilhada separada criando um DWORD chamado FileMappingSize na chave do Registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<nome> da categoria\Desempenho. O valor FileMappingSize é definido como o tamanho da memória compartilhada da categoria. O tamanho padrão é 131072 decimal. Se o valor FileMappingSize não estiver presente, o valor do fileMappingSize
atributo para o performanceCounters
elemento especificado no arquivo Machine.config será usado, causando sobrecarga adicional para processamento de arquivo de configuração. Você pode perceber uma melhoria de desempenho para a inicialização do aplicativo definindo o tamanho do mapeamento de arquivo no Registro.
Observação
É altamente recomendável que novas categorias de contador de desempenho sejam criadas durante a instalação do aplicativo, não durante a execução do aplicativo. Isso permite tempo para o sistema operacional atualizar sua lista de categorias de contador de desempenho registradas. Se a lista não tiver sido atualizada, a tentativa de usar a categoria falhará.
Observação
Para ler contadores de desempenho de uma sessão de logon não interativa no Windows Vista e posterior, Windows XP Professional x64 Edition ou Windows Server 2003, você deve ser membro do grupo Monitor de Desempenho Usuários ou ter privilégios administrativos.
Para evitar ter que elevar seus privilégios para acessar contadores de desempenho no Windows Vista e posteriores, adicione-se ao grupo Monitor de Desempenho Usuários.
No Windows Vista e posterior, UAC (Controle de Conta de Usuário) determina os privilégios de um usuário. Se for um membro do grupo Administradores Internos, você receberá dois tokens de acesso do tempo de execução: um token de acesso do usuário padrão e um token de acesso do administrador. Por padrão, você está na função de usuário padrão. Para executar o código que acessa contadores de desempenho, primeiro você deve elevar seus privilégios de usuário padrão para administrador. Você pode fazer isso ao iniciar um aplicativo, clicando com o botão direito do mouse no ícone do aplicativo e indicando que você deseja executar como administrador.