ProcessPriorityClassとは? わかりやすく解説

Process.PriorityClass プロパティ

関連付けられたプロセスの全体的な優先順位カテゴリを取得または設定します。

名前空間: System.Diagnostics
アセンブリ: System (system.dll 内)
構文構文

Public Property PriorityClass As
 ProcessPriorityClass
Dim instance As Process
Dim value As ProcessPriorityClass

value = instance.PriorityClass

instance.PriorityClass = value
public ProcessPriorityClass PriorityClass { get;
 set; }
public:
property ProcessPriorityClass PriorityClass {
    ProcessPriorityClass get ();
    void set (ProcessPriorityClass value);
}
/** @property */
public ProcessPriorityClass get_PriorityClass ()

/** @property */
public void set_PriorityClass (ProcessPriorityClass
 value)
public function get PriorityClass
 () : ProcessPriorityClass

public function set PriorityClass
 (value : ProcessPriorityClass)

プロパティ値
プロセスの BasePriority を計算するときに使用する、関連付けられたプロセスの優先順位カテゴリ。

例外例外
解説解説

プロセスの優先順位クラスは、一定範囲のスレッドの優先順位に影響します。プロセスで実行される優先順位が異なるスレッドは、そのプロセスの優先順位クラスに対して相対的に実行されます。Win32 は 4 つの優先順位クラスと、クラスごとに 7 つの基本優先順位を使用します。これらのプロセス優先順位クラスは、ProcessPriorityClass 列挙体にキャプチャされています。これを使用して、プロセス優先順位を Idle、Normal、High、AboveNormal、BelowNormal、またはRealTime に設定できます。経過時間またはその他の要因に基づき、プロセスを他のプロセスよりも先にプロセッサにアクセスさせる必要があると判断された場合、オペレーティング システムが基本優先順位を変更することがあります。また、待機状態から抜けたときに一時的にスレッドの優先順位を上げるように、PriorityBoostEnabled を設定できます。プロセスが待機状態に戻ると、優先順位はリセットされます。

BasePriority プロパティによって、プロセスに割り当てられた初期優先順位を表示できます。ただし、読み取り専用であるため、BasePriority プロパティを使用してプロセスの優先順位は設定できません。優先順位を変更するには、プロセスの全体的な優先順位カテゴリを取得または設定する PriorityClass プロパティを使用します。

システム モニタを使用して優先順位クラスを表示することはできません。BasePriority 値と PriorityClass 値の関係を次の表に示します。

BasePriority

PriorityClass

4

Idle

8

Normal

13

High

24

RealTime

Windows 98, Windows Millennium Edition プラットフォームメモ : 優先順位クラスを AboveNormal または BelowNormal に設定すると、例外がスローされます。

使用例使用例

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

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)

                    ' 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 
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);

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

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

}

.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

ProcessPriorityClass 列挙体

システムがプロセスに関連付ける優先順位を示します。この値は、プロセスの各スレッドの優先順位値と組み合わされ、各スレッドの基本優先順位を決定します。

名前空間: System.Diagnostics
アセンブリ: System (system.dll 内)
構文構文

Public Enumeration ProcessPriorityClass
Dim instance As ProcessPriorityClass
public enum ProcessPriorityClass
public enum class ProcessPriorityClass
public enum ProcessPriorityClass
public enum ProcessPriorityClass
メンバメンバ
解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「ProcessPriorityClass」の関連用語

ProcessPriorityClassのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ProcessPriorityClassのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS