PerformanceCounter.NextSample 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.
Obtém uma amostra contadora e devolve o valor bruto, ou não calculado, para ela.
public:
System::Diagnostics::CounterSample NextSample();
public System.Diagnostics.CounterSample NextSample();
member this.NextSample : unit -> System.Diagnostics.CounterSample
Public Function NextSample () As CounterSample
Devoluções
A CounterSample que representa o próximo valor bruto que o sistema obtém para este contador.
Exceções
A instância não está corretamente associada a um contador de desempenho.
-ou-
A InstanceLifetime propriedade é definida para Process quando se utiliza memória partilhada global.
Ocorreu um erro ao aceder a uma API do sistema.
Código que está a executar sem privilégios administrativos tentou ler um contador de desempenho.
Exemplos
O exemplo de código seguinte demonstra como usar o NextSample método para obter o próximo valor não calculado de um contador. Este exemplo de código faz parte de um exemplo maior para a PerformanceCounter turma.
private static void CollectSamples(ArrayList samplesList)
{
Random r = new Random( DateTime.Now.Millisecond );
// Loop for the samples.
for (int j = 0; j < 100; j++)
{
int value = r.Next(1, 10);
Console.Write(j + " = " + value);
avgCounter64Sample.IncrementBy(value);
avgCounter64SampleBase.Increment();
if ((j % 10) == 9)
{
OutputSample(avgCounter64Sample.NextSample());
samplesList.Add( avgCounter64Sample.NextSample() );
}
else
{
Console.WriteLine();
}
System.Threading.Thread.Sleep(50);
}
}
Private Shared Sub CollectSamples(ByVal samplesList As ArrayList)
Dim r As New Random(DateTime.Now.Millisecond)
' Loop for the samples.
Dim j As Integer
For j = 0 To 99
Dim value As Integer = r.Next(1, 10)
Console.Write(j.ToString() + " = " + value.ToString())
avgCounter64Sample.IncrementBy(value)
avgCounter64SampleBase.Increment()
If j Mod 10 = 9 Then
OutputSample(avgCounter64Sample.NextSample())
samplesList.Add(avgCounter64Sample.NextSample())
Else
Console.WriteLine()
End If
System.Threading.Thread.Sleep(50)
Next j
End Sub
Observações
Este método é geralmente usado para contadores que contêm valores não calculados.
Note
Se o valor da propriedade InstanceLifetime for Process e a categoria contador de desempenho foi criada com .NET Framework versão 1.0 ou 1.1, é lançado um InvalidOperationException. As categorias de contadores de desempenho criadas com versões anteriores usam memória partilhada global, e o valor para InstanceLifetime deve ser Global. Se a categoria não for usada por aplicações a correr nas versões 1.0 ou 1.1 do .NET Framework, elimine e recrie a categoria.
Note
Para ler contadores de desempenho no Windows Vista, 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, adicione-se ao grupo Performance Monitor Users.
No Windows Vista, o Controle de Conta de Usuário (UAC) determina os privilégios de um usuário. 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.