Process.Responding Właściwość

Definicja

Pobiera wartość wskazującą, czy interfejs użytkownika procesu odpowiada.

public bool Responding { get; }

Wartość właściwości

true jeśli interfejs użytkownika skojarzonego procesu odpowiada na system; w przeciwnym razie , false.

Wyjątki

Brak procesu skojarzonego z tym Process obiektem.

Próbujesz uzyskać dostęp do Responding właściwości dla procesu uruchomionego na komputerze zdalnym. Ta właściwość jest dostępna tylko dla procesów uruchomionych na komputerze lokalnym.

Przykłady

Poniższy przykład uruchamia wystąpienie Notatnika. Następnie przykład pobiera i wyświetla różne właściwości skojarzonego procesu. Przykład wykrywa, kiedy proces kończy się, i wyświetla kod zakończenia procesu.

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;

            // Start the process.
            using (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($"{myProcess} -");
                        Console.WriteLine("-------------------------------------");

                        Console.WriteLine($"  Physical memory usage     : {myProcess.WorkingSet64}");
                        Console.WriteLine($"  Base priority             : {myProcess.BasePriority}");
                        Console.WriteLine($"  Priority class            : {myProcess.PriorityClass}");
                        Console.WriteLine($"  User processor time       : {myProcess.UserProcessorTime}");
                        Console.WriteLine($"  Privileged processor time : {myProcess.PrivilegedProcessorTime}");
                        Console.WriteLine($"  Total processor time      : {myProcess.TotalProcessorTime}");
                        Console.WriteLine($"  Paged system memory size  : {myProcess.PagedSystemMemorySize64}");
                        Console.WriteLine($"  Paged memory size         : {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          : {myProcess.ExitCode}");

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

Uwagi

Wartość zwrócona przez tę właściwość reprezentuje ostatnio odświeżony stan. Aby uzyskać najbardziej aktualny stan, należy najpierw wywołać Refresh() metodę.

Jeśli proces ma interfejs użytkownika, właściwość kontaktuje się z interfejsem użytkownika, aby określić, Responding czy proces odpowiada na dane wejściowe użytkownika. Jeśli interfejs nie odpowiada natychmiast, Responding właściwość zwraca falsewartość . Użyj tej właściwości, aby określić, czy interfejs skojarzonego procesu przestał odpowiadać.

Jeśli proces nie ma elementu MainWindowHandle, ta właściwość zwraca truewartość .

Dotyczy

Produkt Wersje
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Zobacz też