PerformanceCounter.Decrement Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Decrements the associated performance counter by one through an efficient atomic operation.
public:
long Decrement();
public long Decrement ();
member this.Decrement : unit -> int64
Public Function Decrement () As Long
Returns
The decremented counter value.
Exceptions
The counter is read-only, so the application cannot decrement it.
-or-
The instance is not correctly associated with a performance counter.
-or-
The InstanceLifetime property is set to Process when using global shared memory.
An error occurred when accessing a system API.
Remarks
You can write only to custom counters. All system counters are read-only.
Note
The Increment, IncrementBy, 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.
Note
If the value for the 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.
Applies to
Thread Safety
This method is thread safe.