ProcessThread.UserProcessorTime Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Gets the amount of time that the associated thread has spent running code inside the application.

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

public TimeSpan UserProcessorTime { get; }

Property Value

Type: System.TimeSpan

A TimeSpan indicating the amount of time that the thread has spent running code inside the application, as opposed to inside the operating system core.

Exception Condition

The thread time could not be retrieved.


The platform is Windows 98 or Windows Millennium Edition.


The process is on a remote computer.

Windows NT uses several different protection mechanisms, and at the root of them all is the distinction between user mode and privileged mode. UserProcessorTime corresponds to the amount of time that the application has spent running in user mode, outside the operating system core. The PrivilegedProcessorTime corresponds to the amount of time that the application has spent running code in privileged mode, inside the system core.

User mode restricts the application in two important ways. First, the application cannot directly access the peripherals, but instead must call the operating system core to get or set peripheral data. The operating system can thus ensure that one application does not destroy peripheral data that is needed by another. Second, the application cannot read or change data that the operating system itself maintains. This restriction prevents applications from either inadvertently or intentionally corrupting the core. If the application needs the operating system to perform an operation, it calls one of the system's routines. Many of these transition into privileged mode, perform the operation, and smoothly return to user mode.

.NET Framework
Available since 1.1
Return to top