Process.WorkingSet Property

NOTE: This property is now obsolete.

Gets the associated process's physical memory usage.

Namespace: System.Diagnostics
Assembly: System (in system.dll)

[ObsoleteAttribute("This property has been deprecated.  Please use System.Diagnostics.Process.WorkingSet64 instead.")] 
public int WorkingSet { get; }
/** @property */
public int get_WorkingSet ()

public function get WorkingSet () : int

Property Value

The total amount of physical memory the associated process is using, in bytes.

Exception typeCondition


The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property.

The working set of a process is the set of memory pages currently visible to the process in physical RAM memory. These pages are resident and available for an application to use without triggering a page fault.

The working set includes both shared and private data. The shared data includes the pages that contain all the instructions that the process executes, including the process modules and the system libraries.

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.

using System;
using System.Diagnostics;
using System.Threading;

namespace Process_Sample
   class MyProcessClass
      public static void Main()

            Process myProcess;
            myProcess = Process.Start("NotePad.exe");


               // Get physical memory usage of the associated process.
               Console.WriteLine("Process's physical memory usage: " + myProcess.WorkingSet);
               // Get base priority of the associated process.
               Console.WriteLine("Base priority of the associated process: " + myProcess.BasePriority);
               // Get priority class of the associated process.
               Console.WriteLine("Priority class of the associated process: " + myProcess.PriorityClass);
               // Get user processor time for this process.
               Console.WriteLine("User Processor Time: " + myProcess.UserProcessorTime);
               // Get privileged processor time for this process.
               Console.WriteLine("Privileged Processor Time: " + myProcess.PrivilegedProcessorTime);
               // Get total processor time for this process.
               Console.WriteLine("Total Processor Time: " + myProcess.TotalProcessorTime);
               // Invoke overloaded ToString function.
               Console.WriteLine("Process's Name: " + myProcess.ToString());

                  Console.WriteLine("Status:  Responding to user interface");
                  Console.WriteLine("Status:  Not Responding");


            Console.WriteLine("Process exit code: {0}", myProcess.ExitCode);
         catch(Exception e)
            Console.WriteLine("The following exception was raised: " + e.Message);


Windows 98, Windows 2000 SP4, Windows CE, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 1.0, 1.1
Obsolete (compiler warning) in 2.0

Community Additions