PerformanceCounterCategory.Create Método

Definição

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 NumberOfItems32 no computador local.

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)

Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs

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.

categoryName é null.

- ou -

counterHelp é null.

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)

Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs

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.

categoryName é null.

- ou -

counterHelp é null.

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)

Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs

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)

Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs

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.

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.

categoryName é null.

- ou -

counterData é null.

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.

Confira também

Aplica-se a