Exportar (0) Imprimir
Expandir todo
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Process.PriorityClass (Propiedad)

Obtiene o establece la categoría de prioridad general del proceso asociado.

Espacio de nombres:  System.Diagnostics
Ensamblado:  System (en System.dll)

public ProcessPriorityClass PriorityClass { get; set; }

Valor de propiedad

Tipo: System.Diagnostics.ProcessPriorityClass
Categoría de prioridad del proceso asociado a partir de la cual se calcula la propiedad BasePriority del proceso.

ExcepciónCondición
Win32Exception

No se pudo establecer o recuperar la información de prioridad del proceso desde el recurso del proceso asociado.

O bien

El identificador del proceso es cero. (El proceso no se ha iniciado)

NotSupportedException

Se está intentando obtener acceso a la propiedad PriorityClass de un proceso que se está ejecutando en un equipo remoto. Esta propiedad sólo está disponible para los procesos que se ejecutan en el equipo local.

InvalidOperationException

La propiedad Id del proceso no está disponible.

PlatformNotSupportedException

Se ha establecido el valor de PriorityClass en AboveNormal o BelowNormal al utilizar Windows 98 o Windows Millennium (Windows Me). Estas plataformas no admiten esos valores para la clase de prioridad.

InvalidEnumArgumentException

No se puede establecer la clase de prioridad porque no utiliza un valor válido, como se define en la enumeración ProcessPriorityClass.

Una clase de prioridad de proceso engloba a una variedad de niveles de prioridad de subproceso. Los subprocesos con prioridades distintas que se ejecutan en el proceso, se ejecutan con respecto a la clase de prioridad del proceso. Win32 usa cuatro clases de prioridad, con siete niveles de prioridad base por clase. Estas clases de prioridad de procesos se capturan en la enumeración ProcessPriorityClass, que permite establecer la prioridad del proceso en Idle, Normal, High, AboveNormal, BelowNormal o RealTime. En función del tiempo transcurrido o de otro tipo de estímulo, el sistema operativo puede cambiar el nivel de prioridad base cuando un proceso necesita situarse por delante de otros para obtener acceso al procesador. Además, puede establecerse la propiedad PriorityBoostEnabled para aumentar temporalmente el nivel de prioridad de los subprocesos que se han sacado del estado de espera. La prioridad se restablece cuando el proceso regresa al estado de espera.

La propiedad BasePriority permite ver la prioridad inicial asignada a un proceso. No obstante, la propiedad BasePriority, por ser de sólo lectura, no se puede utilizar para establecer la prioridad de un proceso. Para cambiar la prioridad, utilice la propiedad PriorityClass, que obtiene o establece la categoría de prioridad general del proceso.

La clase de prioridad no puede verse con el Monitor del sistema. En la siguiente tabla se muestra la relación que existe entre los valores de BasePriority y PriorityClass.

BasePriority

PriorityClass

4

Idle

8

Normal

13

High

24

RealTime

Nota de la plataforma : Si la clase de prioridad se establece en AboveNormal o BelowNormal, se produce una excepción.

En el siguiente ejemplo se inicia una instancia del Bloc de notas. A continuación, se recuperan y se muestran diversas propiedades del proceso asociado. También se detecta cuándo termina el proceso y se muestra el código de salida del proceso.


using System;
using System.Diagnostics;

namespace ProcessSample
{
    class ProcessMonitorSample
    {
        public static void Main()
        {

            // Define variables to track the peak
            // memory usage of the process.
            long peakPagedMem = 0,
                peakWorkingSet = 0,
                peakVirtualMem = 0;

            Process myProcess = null;

            try
            {
                // Start the process.
                myProcess = Process.Start("NotePad.exe");

                // Display the process statistics until
                // the user closes the program.
                do
                {
                    if (!myProcess.HasExited)
                    {
                        // Refresh the current process property values.
                        myProcess.Refresh();

                        Console.WriteLine();

                        // Display current process statistics.

                        Console.WriteLine("{0} -", myProcess.ToString());
                        Console.WriteLine("-------------------------------------");

                        Console.WriteLine("  physical memory usage: {0}",
                            myProcess.WorkingSet64);
                        Console.WriteLine("  base priority: {0}",
                            myProcess.BasePriority);
                        Console.WriteLine("  priority class: {0}",
                            myProcess.PriorityClass);
                        Console.WriteLine("  user processor time: {0}",
                            myProcess.UserProcessorTime);
                        Console.WriteLine("  privileged processor time: {0}",
                            myProcess.PrivilegedProcessorTime);
                        Console.WriteLine("  total processor time: {0}",
                            myProcess.TotalProcessorTime);
                        Console.WriteLine("  PagedSystemMemorySize64: {0}",
                            myProcess.PagedSystemMemorySize64);
                        Console.WriteLine("  PagedMemorySize64: {0}",
                           myProcess.PagedMemorySize64);

                        // Update the values for the overall peak memory statistics.
                        peakPagedMem = myProcess.PeakPagedMemorySize64;
                        peakVirtualMem = myProcess.PeakVirtualMemorySize64;
                        peakWorkingSet = myProcess.PeakWorkingSet64;

                        if (myProcess.Responding)
                        {
                            Console.WriteLine("Status = Running");
                        }
                        else
                        {
                            Console.WriteLine("Status = Not Responding");
                        }
                    }
                }
                while (!myProcess.WaitForExit(1000));


                Console.WriteLine();
                Console.WriteLine("Process exit code: {0}",
                    myProcess.ExitCode);

                // Display peak memory statistics for the process.
                Console.WriteLine("Peak physical memory usage of the process: {0}",
                    peakWorkingSet);
                Console.WriteLine("Peak paged memory usage of the process: {0}",
                    peakPagedMem);
                Console.WriteLine("Peak virtual memory usage of the process: {0}",
                    peakVirtualMem);

            }
            finally
            {
                if (myProcess != null)
                {
                    myProcess.Close();
                }
            }
        }

    }
}


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

  • LinkDemand 

    para que haya plena confianza para el llamador inmediato. Este miembro no puede ser utilizado por código de confianza parcial.

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft