This documentation is archived and is not being maintained.

PerformanceCounter.CounterType Property

Gets the counter type of the associated performance counter.

Namespace: System.Diagnostics
Assembly: System (in system.dll)

public PerformanceCounterType CounterType { get; }
/** @property */
public PerformanceCounterType get_CounterType ()

public function get CounterType () : PerformanceCounterType

Property Value

A PerformanceCounterType that describes both how the counter interacts with a monitoring application and the nature of the values it contains (for example, calculated or uncalculated).

Exception typeCondition


The instance is not correctly associated with a performance counter.


The InstanceLifetime property is set to Process when using global shared memory.


The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters.

The PerformanceCounterType enumeration contains the types of performance counters that you can interact with. Some of the counter types represent calculated values, such as the average of the counter measurements the system has taken. Other types represent raw, or uncalculated, values. The following table shows the counter types that you will interact with most frequently.

Counter's Responsibility

PerformanceCounterType Value


Maintain a simple count of items or operations.


Tracking the number of orders received as a 32-bit integer.

Maintain a higher-capacity simple count.


Tracking the number of orders for a site with very high volume, stored as a 64-bit integer.

Track the number of items or operations per second.


Tracking orders received per second on a site.

Track a higher-capacity number of items or operations per second.


Tracking orders received per second on a site with very high volume.

Calculate the average time to perform a process or to process an item


Calculate the average time an order takes to be processed.

When you create a counter whose type requires the use of a corresponding base counter, you must declare the counter and the base in the CounterCreationDataCollection you pass into the PerformanceCounterCategory.Create method.


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.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0