次の方法で共有


Process.WorkingSet プロパティ

関連付けられたプロセスの物理メモリ使用量を取得します。

Public ReadOnly Property WorkingSet As Integer
[C#]
public int WorkingSet {get;}
[C++]
public: __property int get_WorkingSet();
[JScript]
public function get WorkingSet() : int;

プロパティ値

関連付けられたプロセスが使用している物理メモリの合計容量 (バイト単位)。

例外

例外の種類 条件
PlatformNotSupportedException Windows 98 を使用して、このメンバにアクセスしています。

解説

プロセスのワーキング セットとは、物理 RAM メモリ内でプロセスが現在参照できるメモリ ページのセットのことです。これらのページは常駐であり、アプリケーションはページ フォルトを起こすことなくこれらを参照できます。

ワーキング セットには、共有データとプライベート データの両方が含まれます。共有データには、独自の .dll ファイルとシステム .dll ファイルのページなど、アプリケーションが実行するすべての命令が格納されているページが含まれます。

使用例

[Visual Basic, C#, C++] メモ帳のインスタンスを起動する例を次に示します。この例では、インスタンスの起動後、関連付けられているプロセスのさまざまなプロパティが取得および表示されます。その後、プロセスの終了を検知し、プロセスの終了コードを表示します。

 
Imports System
Imports System.Diagnostics
Imports System.Threading

Namespace Process_Sample
   Class MyProcessClass

      Public Shared Sub Main()
         Try

            Dim myProcess As Process
            myProcess = Process.Start("NotePad.exe")

            While Not myProcess.HasExited

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

               If myProcess.Responding Then
                  Console.WriteLine("Status:  Responding to user interface")
                  myProcess.Refresh()
               Else
                  Console.WriteLine("Status:  Not Responding")
               End If
               Thread.Sleep(1000)
            End While

            Console.WriteLine()
            Console.WriteLine("Process exit code: {0}", myProcess.ExitCode)

         Catch e As Exception
            Console.WriteLine("The following exception was raised: " + e.Message)
         End Try
      End Sub 'Main
   End Class 'MyProcessClass
End Namespace 'Process_Sample


[C#] 
using System;
using System.Diagnostics;
using System.Threading;

namespace Process_Sample
{
   class MyProcessClass
   {
      public static void Main()
      {
         try
         {

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

            while(!myProcess.HasExited)
            {
               Console.WriteLine();

               // 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("-------------------------------------");

               if(myProcess.Responding)
               {
                  Console.WriteLine("Status:  Responding to user interface");
                  myProcess.Refresh();
               }
               else
               {
                  Console.WriteLine("Status:  Not Responding");
               }
               Thread.Sleep(1000);

            }

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

   }
}

[C++] 
#using <mscorlib.dll>
#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;

int main() {
    try {
        Process* myProcess;
        myProcess = Process::Start(S"NotePad.exe");

        while(!myProcess->HasExited)       
        {
           Console::WriteLine();

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

            if (myProcess->Responding) 
            {
                Console::WriteLine(S"Status:  Responding to user interface");
                myProcess->Refresh();
            } 
            else
            {
                Console::WriteLine(S"Status:  Not Responding");
            }

            Thread::Sleep(1000);
        }

        Console::WriteLine();
        Console::WriteLine("Process exit code: {0}", myProcess->ExitCode.ToString());

    } catch (Exception* e) {
       Console::WriteLine(S"The following exception was raised:  {0}", e->Message);
    }
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows NT Server 4.0, Windows NT Workstation 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

Process クラス | Process メンバ | System.Diagnostics 名前空間 | MinWorkingSet | MaxWorkingSet | PeakWorkingSet