File: System\Diagnostics\ProcessPriorityClass.cs
Web Access
Project: src\src\libraries\System.Diagnostics.Process\src\System.Diagnostics.Process.csproj (System.Diagnostics.Process)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
namespace System.Diagnostics
{
    /// <devdoc>
    ///     A category of priority for a process.  Threads within a process
    ///     run at a priority which is relative to the process priority class.
    /// </devdoc>
    public enum ProcessPriorityClass
    {
        /// <devdoc>
        ///      Specify this class for a process with no special scheduling needs.
        /// </devdoc>
        Normal = 0x20,
 
        /// <devdoc>
        ///     Specify this class for a process whose threads run only when the system is idle.
        ///     The threads of the process are preempted by the threads of any process running in
        ///     a higher priority class. An example is a screen saver. The idle-priority class is
        ///     inherited by child processes.
        /// </devdoc>
        Idle = 0x40,
 
        /// <devdoc>
        ///     Specify this class for a process that performs time-critical tasks that must
        ///     be executed immediately. The threads of the process preempt the threads of
        ///     normal or idle priority class processes. An example is the Task List, which
        ///     must respond quickly when called by the user, regardless of the load on the
        ///     operating system. Use extreme care when using the high-priority class, because
        ///     a high-priority class application can use nearly all available CPU time.
        /// </devdoc>
        High = 0x80,
 
        /// <devdoc>
        ///     Specify this class for a process that has the highest possible priority.
        ///     The threads of the process preempt the threads of all other processes,
        ///     including operating system processes performing important tasks. For example,
        ///     a real-time process that executes for more than a very brief interval can cause
        ///     disk caches not to flush or cause the mouse to be unresponsive.
        /// </devdoc>
        RealTime = 0x100,
 
        /// <devdoc>
        ///     Indicates a process that has priority above Idle but below Normal.
        /// </devdoc>
        BelowNormal = 0x4000,
 
        /// <devdoc>
        ///     Indicates a process that has priority above Normal but below High.
        /// </devdoc>
        AboveNormal = 0x8000
    }
}