Aracılığıyla paylaş


PerformanceCounter.IncrementBy(Int64) Yöntem

Tanım

Verimli bir atomik işlem aracılığıyla ilişkili performans sayacının değerini belirtilen miktarda artırır veya düşürür.

public:
 long IncrementBy(long value);
public long IncrementBy(long value);
member this.IncrementBy : int64 -> int64
Public Function IncrementBy (value As Long) As Long

Parametreler

value
Int64

Artıracak değer. (Negatif bir değer sayacın azalmasını sağlar.)

Döndürülenler

Yeni sayaç değeri.

Özel durumlar

Sayaç salt okunur olduğundan uygulama bunu artıramaz.

-veya-

Örnek bir performans sayacıyla doğru ilişkilendirilmemiş.

-veya-

InstanceLifetime Özelliği, genel paylaşılan bellek kullanılırken olarak Process ayarlanır.

Sistem API'lerine erişilirken bir hata oluştu.

Örnekler

Aşağıdaki kod örneği, sayacına IncrementBy artım eklemek için yönteminin nasıl kullanılacağını gösterir. Bu kod örneği, sınıfı için PerformanceCounter daha büyük bir örneğin parçasıdır.

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

Açıklamalar

Yalnızca özel sayaçlara yazabilirsiniz. Tüm sistem sayaçları salt okunur.

Uyarı

Increment, IncrementByve Decrement yöntemleri, sayaç değerini güncelleştirmek için kilitleri kullanır. Bu, çok iş parçacıklı veya çok işlemli senaryolarda sayaç değerinin doğru tutulmasına yardımcı olur, ancak aynı zamanda bir performans cezasına neden olur. Kilitlenmiş işlemlerin sağladığı doğruluk gerekli değilse, özelliği doğrudan 5 kata kadar performans iyileştirmesi için güncelleştirebilirsiniz RawValue . Ancak, çok iş parçacıklı senaryolarda, sayaç değerinde yapılan bazı güncelleştirmeler yoksayılabilir ve bu da yanlış verilere neden olabilir.

Uyarı

Özelliğin InstanceLifetime değeri ise Process ve performans sayacı kategorisi .NET Framework sürüm 1.0 veya 1.1 ile oluşturulduysa, bir InvalidOperationException oluşturulur. Önceki sürümlerle oluşturulan performans sayacı kategorileri genel paylaşılan bellek kullanır ve değerinin InstanceLifetime olması Globalgerekir. Kategori, .NET Framework'ün 1.0 veya 1.1 sürümlerinde çalışan uygulamalar tarafından kullanılmıyorsa, kategoriyi silin ve yeniden oluşturun.

Şunlara uygulanır

İş Parçacığı Güvenliği

Bu yöntem iş parçacığı güvenlidir.