.NET Framework Class Library
Process.ToString Method
Formats the process's name as a string, combined with the parent component type, if applicable.
Assembly: System (in System.dll)
Syntax
Visual Basic
Public Overrides Function ToString As String
C#
public override string ToString()
Visual C++
public: virtual String^ ToString() override
F#
abstract ToString : unit -> string override ToString : unit -> string
Return Value
Type: System.StringThe ProcessName, combined with the base component's ToString return value.
Exceptions
| Exception | Condition |
|---|---|
| PlatformNotSupportedException |
ToString is not supported on Windows 98. |
Examples
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.
Visual Basic
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
C#
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(); } } } } }
Visual C++
#using <system.dll> using namespace System; using namespace System::Diagnostics; int main() { // Define variables to track the peak // memory usage of the process. _int64 peakPagedMem = 0,peakWorkingSet = 0,peakVirtualMem = 0; Process^ myProcess = nullptr; 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 ); 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 != nullptr ) { myProcess->Close(); } } }
Version Information
.NET Framework
Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Supported in: 4, 3.5 SP1.NET Framework Security
-
LinkDemand
for full trust for the immediate caller. This member cannot be used by partially trusted code.
Platforms
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
See Also