Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Propiedad Process.Responding

 

Publicado: octubre de 2016

Obtiene un valor que indica si la interfaz de usuario del proceso está respondiendo.

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

public bool Responding { get; }

Valor de propiedad

Type: System.Boolean

Es true si la interfaz de usuario del proceso asociado está respondiendo al sistema; de lo contrario, es false.

Exception Condition
PlatformNotSupportedException

La plataforma es Windows 98 o Windows Millennium Edition (Windows Me); establezca ProcessStartInfo.UseShellExecute en false para tener acceso a esta propiedad en Windows 98 y Windows Me.

InvalidOperationException

No hay ningún proceso asociado a este objeto Process.

NotSupportedException

Está intentando obtener acceso a la propiedad Responding de un proceso que se ejecuta en un equipo remoto. Esta propiedad está disponible únicamente para los procesos que se ejecutan en el equipo local.

Si un proceso tiene una interfaz de usuario, la Responding propiedad pone en contacto con la interfaz de usuario para determinar si el proceso está respondiendo a la entrada del usuario. Si la interfaz no responde inmediatamente, la Responding devuelve false. Utilice esta propiedad para determinar si la interfaz del proceso asociado ha dejado de responder.

Si el proceso no tiene un MainWindowHandle, esta propiedad devuelve true.

Win98WinMe

This property is not available on this platform if you started the process with P:System.Diagnostics.ProcessStartInfo.UseShellExecute set to true.

En el ejemplo siguiente se inicia una instancia del Bloc de notas. A continuación, el ejemplo recupera y muestra varias propiedades del proceso asociado. En el ejemplo se detecta cuando se cierra el proceso y 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();
                }
            }
        }

    }
}

LinkDemand

for full trust for the immediate caller. This member cannot be used by partially trusted code.

.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: