Ler em inglês

Partilhar via


PerformanceCounter.IncrementBy(Int64) Método

Definição

Incrementa ou diminui o valor do contador de desempenho associado em um valor especificado por meio de uma operação atômica eficiente.

C#
public long IncrementBy (long value);

Parâmetros

value
Int64

O valor no qual incrementar. (Um valor negativo diminui o contador.)

Retornos

O novo valor de contador.

Exceções

O contador é somente leitura para que o aplicativo não possa incrementá-lo.

- ou -

A instância não está associada corretamente a um contador de desempenho.

- ou -

A propriedade InstanceLifetime está definida como Process ao usar a memória global compartilhada.

Ocorreu um erro ao acessar uma API do sistema.

Exemplos

O exemplo de código a seguir demonstra como usar o IncrementBy método para adicionar incrementos a um contador. Este exemplo de código faz parte de um exemplo maior para a PerformanceCounter classe .

C#
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);
    }
}

Comentários

Você pode gravar somente em contadores personalizados. Todos os contadores do sistema são somente leitura.

Nota

Os Incrementmétodos , IncrementBye Decrement usam bloqueios para atualizar o valor do contador. Isso ajuda a manter o valor do contador preciso em cenários multithreaded ou multiprocessos, mas também resulta em uma penalidade de desempenho. Se você não precisar da precisão que as operações interligadas fornecem, atualize a RawValue propriedade diretamente para uma melhoria de desempenho de até 5 vezes. No entanto, em cenários multithreaded, algumas atualizações no valor do contador podem ser ignoradas, resultando em dados imprecisos.

Nota

Se o valor da InstanceLifetime propriedade for Process e a categoria do contador de desempenho tiver sido criada com .NET Framework versão 1.0 ou 1.1, um InvalidOperationException será gerado. As categorias de contador de desempenho criadas com versões anteriores usam memória compartilhada global e o valor de InstanceLifetime deve ser Global. Se a categoria não for usada por aplicativos em execução nas versões 1.0 ou 1.1 do .NET Framework, exclua e recrie a categoria.

Aplica-se a

Produto Versões
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Acesso thread-safe

Este método é thread-safe.