PerformanceCounter.CounterType Property

Definition

Gets the counter type of the associated performance counter.

public:
 property System::Diagnostics::PerformanceCounterType CounterType { System::Diagnostics::PerformanceCounterType get(); };
public System.Diagnostics.PerformanceCounterType CounterType { get; }
member this.CounterType : System.Diagnostics.PerformanceCounterType
Public ReadOnly Property CounterType As 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).

Exceptions

The instance is not correctly associated with a performance counter.

-or-

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

Code that is executing without administrative privileges attempted to read a performance counter.

Remarks

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 Example
Maintain a simple count of items or operations. NumberOfItems32 Tracking the number of orders received as a 32-bit integer.
Maintain a higher-capacity simple count. NumberOfItems64 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. RateOfCountsPerSecond32 Tracking orders received per second on a site.
Track a higher-capacity number of items or operations per second. RateOfCountsPerSecond64 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 AverageTimer32 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.

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.

Note

To read performance counters in Windows Vista, Windows XP Professional x64 Edition, or Windows Server 2003, you must either be a member of the Performance Monitor Users group or have administrative privileges.

To avoid having to elevate your privileges to access performance counters in Windows Vista, add yourself to the Performance Monitor Users group.

In Windows Vista, User Account Control (UAC) determines the privileges of a user. If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. By default, you are in the standard user role. To execute the code that accesses performance counters, you must first elevate your privileges from standard user to administrator. You can do this when you start an application by right-clicking the application icon and indicating that you want to run as an administrator.

Applies to

See also