Process.Responding Property
Gets a value indicating whether the user interface of the process is responding.
Assembly: System (in System.dll)
Property Value
Type: System.Booleantrue if the user interface of the associated process is responding to the system; otherwise, false.
| Exception | Condition |
|---|---|
| PlatformNotSupportedException | The platform is Windows 98 or Windows Millennium Edition (Windows Me); set ProcessStartInfo.UseShellExecute to false to access this property on Windows 98 and Windows Me. |
| InvalidOperationException | There is no process associated with this Process object. |
| NotSupportedException | You are attempting to access the Responding property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. |
If a process has a user interface, the Responding property contacts the user interface to determine whether the process is responding to user input. If the interface does not respond immediately, the Responding property returns false. Use this property to determine whether the interface of the associated process has stopped responding.
If the process does not have a MainWindowHandle, this property returns true.
This property is not available on this platform if you started the process with ProcessStartInfo.UseShellExecute set to true.
The following example starts an instance of Notepad. The example then retrieves and displays various properties of the associated process. The example detects when the process exits, and displays the process's exit code.
Imports System Imports System.Diagnostics Namespace ProcessSample Class ProcessMonitorSample Public Shared Sub Main() ' Define variables to track the peak ' memory usage of the process. Dim peakPagedMem As Long = 0 Dim peakWorkingSet As Long = 0 Dim peakVirtualMem As Long = 0 Dim myProcess As Process = Nothing Try ' Start the process. myProcess = Process.Start("NotePad.exe") ' Display process statistics until ' the user closes the program. Do If Not myProcess.HasExited Then ' 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 Then Console.WriteLine("Status = Running") Else Console.WriteLine("Status = Not Responding") End If End If Loop While Not 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 Not myProcess Is Nothing Then myProcess.Close() End If End Try End Sub 'Main End Class End Namespace
for full trust for the immediate caller. This member cannot be used by partially trusted code.
Available since 1.1