System.Diagnostics.PerformanceCounter.IncrementBy Method

Increments or decrements the value of the associated performance counter by a specified amount through an efficient atomic operation.

Syntax

[System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.MayFail)]
public long IncrementBy (long value)

Parameters

value
The value to increment by. (A negative value decrements the counter.)

Returns

The new counter value.

Remarks

You can write only to custom counters. All system counters are read-only.

Note:

The PerformanceCounter.Increment, PerformanceCounter.IncrementBy(long), and PerformanceCounter.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 PerformanceCounter.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.

Note:

If the value forthe PerformanceCounter.InstanceLifetime property is PerformanceCounterInstanceLifetime.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 PerformanceCounter.InstanceLifetime must be PerformanceCounterInstanceLifetime.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.

Requirements

Namespace: System.Diagnostics
Assembly: System (in System.dll)
Assembly Versions: 1.0.5000.0, 2.0.0.0, 4.0.0.0