PerformanceCounter.IncrementBy(Int64) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.