PerformanceCounterCategory.Delete(String) 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.
Remove a categoria e seus contadores associados do computador local.
public:
static void Delete(System::String ^ categoryName);
public static void Delete(string categoryName);
static member Delete : string -> unit
Public Shared Sub Delete (categoryName As String)
Parâmetros
- categoryName
- String
O nome da categoria do contador de desempenho personalizado a ser excluído.
Exceções
O categoryName parâmetro é null.
O categoryName parâmetro tem sintaxe inválida. Ele pode conter caracteres de barra invertida ("\") ou ter comprimento maior que 80 caracteres.
Falha em uma chamada para uma API do sistema subjacente.
A categoria não pode ser excluída porque não é uma categoria personalizada.
Código que está sendo executado sem privilégios administrativos tentou ler um contador de desempenho.
Exemplos
O exemplo de código a seguir usa o Delete método para excluir um PerformanceCounterCategory e os PerformanceCounter objetos que ele contém.
public static void Main(string[] args)
{
string categoryName = "";
// Copy the supplied argument into the local variable.
try
{
categoryName = args[0];
}
catch (Exception ex)
{
Console.WriteLine("Missing argument identifying category to be deleted.");
}
// Delete the specified category.
try
{
if (PerformanceCounterCategory.Exists(categoryName))
{
PerformanceCounterCategory.Delete(categoryName);
Console.WriteLine("Category \"{0}\" deleted from this computer.", categoryName);
}
else
{
Console.WriteLine("Category name not found");
}
}
catch (Exception ex)
{
Console.WriteLine("Unable to delete " +
"category \"{0}\" from this computer:" + "\n" + ex.Message, categoryName);
}
}
Sub Main(ByVal args() As String)
Dim categoryName As String = ""
' Copy the supplied argument into the local variable.
Try
categoryName = args(0)
Catch ex As Exception
Console.WriteLine("Missing argument identifying category to be deleted.")
End Try
' Delete the specified category.
Try
If (PerformanceCounterCategory.Exists(categoryName)) Then
PerformanceCounterCategory.Delete(categoryName)
Console.WriteLine( _
"Category ""{0}"" deleted from this computer.", categoryName)
Else
Console.WriteLine("Category name not found")
End If
Catch ex As Exception
Console.WriteLine("Unable to delete " & _
"category ""{0}"" from this computer:" & vbCrLf & _
ex.Message, categoryName)
End Try
End Sub
Comentários
Você pode excluir apenas categorias de contador de desempenho personalizadas do sistema. Não é possível excluir um contador de uma categoria. Para fazer isso, exclua a categoria e recrie a categoria com os contadores que você deseja reter. Para evitar uma exceção, confirme se a categoria existe antes de você tentar excluí-la.
Note
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 do 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 Usuários do Monitor de Desempenho.
No Windows Vista e posterior, o UAC (Controle de Conta de Usuário) determina os privilégios de um usuário. Se você for membro do grupo Administradores Internos, será atribuído dois tokens de acesso em tempo de execução: um token de acesso de usuário 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 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 deseja executar como administrador.