Microsoft

.NET Framework Documentation

System.Diagnostics Namespace

The System.Diagnostics namespace provides classes that allow you to interact with system processes, event logs, performance counters, and debugging and tracing tools.

Key Types

Example: Using Process and Debug

// Example: Get current process information and write to Debug output
using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        Process current = Process.GetCurrentProcess();
        Debug.WriteLine($"Process ID: {current.Id}");
        Debug.WriteLine($"Process Name: {current.ProcessName}");
        Debug.WriteLine($"Start Time: {current.StartTime}");
        Debug.WriteLine($"Total Processor Time: {current.TotalProcessorTime}");

        // Start a new process (e.g., Notepad) and wait for it to exit
        ProcessStartInfo psi = new ProcessStartInfo
        {
            FileName = "notepad.exe",
            UseShellExecute = true
        };
        using (Process p = Process.Start(psi))
        {
            p.WaitForExit();
            Debug.WriteLine("Notepad closed.");
        }
    }
}

Related Topics