PerformanceCounterCategory.Exists Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Determina se a categoria está registada no sistema.
Sobrecargas
| Name | Description |
|---|---|
| Exists(String) |
Determina se a categoria está registada no computador local. |
| Exists(String, String) |
Determina se a categoria está registada no computador especificado. |
Exists(String)
Determina se a categoria está registada no computador local.
public:
static bool Exists(System::String ^ categoryName);
public static bool Exists(string categoryName);
static member Exists : string -> bool
Public Shared Function Exists (categoryName As String) As Boolean
Parâmetros
- categoryName
- String
O nome da categoria do contador de desempenho a procurar.
Devoluções
true se a categoria estiver registada; caso contrário, false.
Exceções
O categoryName parâmetro é null.
O categoryName parâmetro é uma cadeia vazia ("").
Uma chamada a uma API do sistema subjacente falhou.
Código que está a executar sem privilégios administrativos tentou ler um contador de desempenho.
Exemplos
O exemplo de código seguinte determina se existe um PerformanceCounterCategory objeto chamado "orders". Se não, cria o PerformanceCounterCategory objeto usando um CounterCreationDataCollection objeto que contém dois contadores de desempenho.
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
Observações
A utilização do Exists método pode resultar numa penalização de desempenho notória enquanto todos os contadores de desempenho na máquina são verificados quanto à disponibilidade. Se estiver apenas a escrever para um contador de desempenho, pode evitar a pesquisa global por contadores de desempenho criando o contador de desempenho quando a aplicação está instalada e assumindo que a categoria existe ao aceder ao contador. Não há forma de evitar a pesquisa de contadores de desempenho ao ler a partir de contadores de desempenho.
Note
Para ler contadores de desempenho de uma sessão de login não interativa no Windows Vista e versões posteriores, Windows XP Professional x64 Edition ou Windows Server 2003, deve ser membro do grupo Performance Monitor Users ou ter privilégios administrativos.
Para evitar ter de elevar os seus privilégios para aceder a contadores de desempenho no Windows Vista e versões posteriores, adicione-se ao grupo de Utilizadores do Performance Monitor.
No Windows Vista e posteriores, o Controlo de Conta de Utilizador (UAC) determina os privilégios de um utilizador. Se for membro do grupo Administradores Incorporados, é-lhe atribuídos dois tokens de acesso em tempo de execução: um token de acesso de utilizador padrão e um token de acesso de administrador. Por padrão, você está na função de usuário padrão. Para executar o código que acede aos contadores de desempenho, deve primeiro elevar os seus privilégios de utilizador padrão a administrador. Você pode fazer isso ao iniciar um aplicativo clicando com o botão direito do mouse no ícone do aplicativo e indicando que deseja executar como administrador.
Ver também
Aplica-se a
Exists(String, String)
Determina se a categoria está registada no computador especificado.
public:
static bool Exists(System::String ^ categoryName, System::String ^ machineName);
public static bool Exists(string categoryName, string machineName);
static member Exists : string * string -> bool
Public Shared Function Exists (categoryName As String, machineName As String) As Boolean
Parâmetros
- categoryName
- String
O nome da categoria do contador de desempenho a procurar.
- machineName
- String
O nome do computador a examinar para a categoria.
Devoluções
true se a categoria estiver registada; caso contrário, false.
Exceções
O categoryName parâmetro é null.
O categoryName parâmetro é uma cadeia vazia ("").
-ou-
O machineName parâmetro é inválido.
Uma chamada a uma API do sistema subjacente falhou.
O caminho da rede não pode ser encontrado.
O interlocutor não tem a permissão necessária.
-ou-
Código que está a executar sem privilégios administrativos tentou ler um contador de desempenho.
Exemplos
O exemplo seguinte determina se existe um PerformanceCounterCategory objeto nomeado Orders . Se não existir, o exemplo cria o PerformanceCounterCategory objeto usando um CounterCreationDataCollection objeto que contém dois contadores de desempenho.
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
Observações
A utilização do Exists método pode resultar numa penalização de desempenho notória enquanto todos os contadores de desempenho na máquina são verificados quanto à disponibilidade. Se estiver apenas a escrever para um contador de desempenho, pode evitar a pesquisa global por contadores de desempenho criando o contador de desempenho quando a aplicação está instalada e assumindo que a categoria existe ao aceder ao contador. Não há forma de evitar a pesquisa de contadores de desempenho ao ler a partir de contadores de desempenho.
Note
Para ler contadores de desempenho de uma sessão de login não interativa no Windows Vista e versões posteriores, Windows XP Professional x64 Edition ou Windows Server 2003, deve ser membro do grupo Performance Monitor Users ou ter privilégios administrativos.
Para evitar ter de elevar os seus privilégios para aceder a contadores de desempenho no Windows Vista e versões posteriores, adicione-se ao grupo de Utilizadores do Performance Monitor.
No Windows Vista e posteriores, o Controlo de Conta de Utilizador (UAC) determina os privilégios de um utilizador. Se for membro do grupo Administradores Incorporados, é-lhe atribuídos dois tokens de acesso em tempo de execução: um token de acesso de utilizador padrão e um token de acesso de administrador. Por padrão, você está na função de usuário padrão. Para executar o código que acede aos contadores de desempenho, deve primeiro elevar os seus privilégios de utilizador padrão a administrador. Você pode fazer isso ao iniciar um aplicativo clicando com o botão direito do mouse no ícone do aplicativo e indicando que deseja executar como administrador.