PerformanceCounter.IncrementBy Method (Int64)
Increments or decrements the value of the associated performance counter by a specified amount through an efficient atomic operation.
Assembly: System (in System.dll)
An error occurred when accessing a system API.
The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters.
Available since 1.1
This method is thread safe.
You can write only to custom counters. All system counters are read-only.
The Increment, , and Decrement methods use interlocks to update the counter value. This helps keep the counter value accurate in multithreaded or multiprocess scenarios, but also results in a performance penalty. If you do not need the accuracy that interlocked operations provide, you can update the RawValue property directly for up to a 5 times performance improvement. However, in multithreaded scenarios, some updates to the counter value might be ignored, resulting in inaccurate data.
If the value forthe InstanceLifetime property is Process and the performance counter category was created with .NET Framework version 1.0 or 1.1, an InvalidOperationException is thrown. Performance counter categories created with earlier versions use global shared memory, and the value for InstanceLifetime must be Global. If the category is not used by applications running on versions 1.0 or 1.1 of the .NET Framework, delete and recreate the category.
The following code example demonstrates how to use the PerformanceCounter class.method to add increments to a counter. This code example is part of a larger example for the
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 'CollectSamples