Process.PriorityClass Process.PriorityClass Process.PriorityClass Process.PriorityClass Property

定義

関連付けられたプロセスの全体的な優先順位カテゴリを取得または設定します。Gets or sets the overall priority category for the associated process.

public:
 property System::Diagnostics::ProcessPriorityClass PriorityClass { System::Diagnostics::ProcessPriorityClass get(); void set(System::Diagnostics::ProcessPriorityClass value); };
public System.Diagnostics.ProcessPriorityClass PriorityClass { get; set; }
member this.PriorityClass : System.Diagnostics.ProcessPriorityClass with get, set
Public Property PriorityClass As ProcessPriorityClass

プロパティ値

プロセスの BasePriority を計算するときに使用する、関連付けられたプロセスの優先順位カテゴリ。The priority category for the associated process, from which the BasePriority of the process is calculated.

例外

関連付けられているプロセスのリソースからプロセス優先度情報を設定できないか、取得できませんでした。Process priority information could not be set or retrieved from the associated process resource.

または-or- プロセス識別子またはプロセス ハンドルが 0 です。The process identifier or process handle is zero. (プロセスは開始されていません。)(The process has not been started.)

リモート コンピューターで実行されているプロセスの PriorityClass プロパティにアクセスしようとしています。You are attempting to access the PriorityClass property for a process that is running on a remote computer. このプロパティはローカル コンピューターで実行中のプロセスに対してのみ使用可能です。This property is available only for processes that are running on the local computer.

プロセス Id が使用できません。The process Id is not available.

Windows 98 または Windows Millennium Edition (Windows Me) を使用していて、PriorityClassAboveNormal または BelowNormal に設定しました。You have set the PriorityClass to AboveNormal or BelowNormal when using Windows 98 or Windows Millennium Edition (Windows Me). これらのプラットフォームにおいて、優先度クラスにそれらの値はサポートされていません。These platforms do not support those values for the priority class.

ProcessPriorityClass 列挙体で定義されている有効な値が使用されていないため、優先度クラスを設定できません。Priority class cannot be set because it does not use a valid value, as defined in the ProcessPriorityClass enumeration.

次の例では、メモ帳のインスタンスを開始します。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.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();
      }
   }

}
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;

            // Start the process.
            using (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($"{myProcess} -");
                        Console.WriteLine("-------------------------------------");

                        Console.WriteLine($"  Physical memory usage     : {myProcess.WorkingSet64}");
                        Console.WriteLine($"  Base priority             : {myProcess.BasePriority}");
                        Console.WriteLine($"  Priority class            : {myProcess.PriorityClass}");
                        Console.WriteLine($"  User processor time       : {myProcess.UserProcessorTime}");
                        Console.WriteLine($"  Privileged processor time : {myProcess.PrivilegedProcessorTime}");
                        Console.WriteLine($"  Total processor time      : {myProcess.TotalProcessorTime}");
                        Console.WriteLine($"  Paged system memory size  : {myProcess.PagedSystemMemorySize64}");
                        Console.WriteLine($"  Paged memory size         : {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          : {myProcess.ExitCode}");

                // Display peak memory statistics for the process.
                Console.WriteLine($"  Peak physical memory usage : {peakWorkingSet}");
                Console.WriteLine($"  Peak paged memory usage    : {peakPagedMem}");
                Console.WriteLine($"  Peak virtual memory usage  : {peakVirtualMem}");
            }
        }
    }
}
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

            ' Start the process.
            Using 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($"{myProcess} -")
                        Console.WriteLine("-------------------------------------")

                        Console.WriteLine($"  Physical memory usage     : {myProcess.WorkingSet64}")
                        Console.WriteLine($"  Base priority             : {myProcess.BasePriority}")
                        Console.WriteLine($"  Priority class            : {myProcess.PriorityClass}")
                        Console.WriteLine($"  User processor time       : {myProcess.UserProcessorTime}")
                        Console.WriteLine($"  Privileged processor time : {myProcess.PrivilegedProcessorTime}")
                        Console.WriteLine($"  Total processor time      : {myProcess.TotalProcessorTime}")
                        Console.WriteLine($"  Paged system memory size  : {myProcess.PagedSystemMemorySize64}")
                        Console.WriteLine($"  Paged memory size         : {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                         : {myProcess.ExitCode}")

                ' Display peak memory statistics for the process.
                Console.WriteLine($"  Peak physical memory usage of the process : {peakWorkingSet}")
                Console.WriteLine($"  Peak paged memory usage of the process    : {peakPagedMem}")
                Console.WriteLine($"  Peak virtual memory usage of the process  : {peakVirtualMem}")
            End Using
        End Sub 'Main
    End Class
End Namespace

注釈

プロセスの優先度クラスには、さまざまなスレッド優先度レベルが含まれます。A process priority class encompasses a range of thread priority levels. プロセスの優先度クラスを基準としたプロセスで実行されている優先順位が異なるスレッドを実行します。Threads with different priorities that are running in the process run relative to the priority class of the process. Win32 では、クラスごとに 7 つの基本優先度レベルの 4 つの優先度クラスを使用します。Win32 uses four priority classes with seven base priority levels per class. これらのプロセス優先度クラスをキャプチャ、ProcessPriorityClassできるようにする列挙体にプロセスの優先順位を設定するIdleNormalHighAboveNormalBelowNormal、またはRealTimeします。These process priority classes are captured in the ProcessPriorityClass enumeration, which lets you set the process priority to Idle, Normal, High, AboveNormal, BelowNormal, or RealTime. プロセスがプロセッサにアクセスの他のユーザーを事前設定する必要がある場合、オペレーティング システムによって経過またはその他の要因、基本優先度レベルを変更できます時間に基づいています。Based on the time elapsed or other boosts, the base priority level can be changed by the operating system when a process needs to be put ahead of others for access to the processor. さらに、設定、PriorityBoostEnabledを一時的に待機状態から作成されたスレッドの優先度レベルを上げます。In addition, you can set the PriorityBoostEnabled to temporarily boost the priority level of threads that have been taken out of the wait state. 優先順位は、プロセスが待機状態に戻ったときにリセットされます。The priority is reset when the process returns to the wait state.

BasePriorityプロパティでは、プロセスに割り当てられている開始の優先順位を表示することができます。The BasePriority property lets you view the starting priority that is assigned to a process. ただし、これは、読み取り専用であるために使用できません、BasePriorityプロセスの優先順位を設定するプロパティ。However, because it is read-only, you cannot use the BasePriority property to set the priority of a process. 優先順位を変更するには、使用、PriorityClassプロパティを取得または設定、プロセスの全体的な優先順位カテゴリ。To change the priority, use the PriorityClass property, which gets or sets the overall priority category for the process.

システム モニターを使用して、優先度クラスを表示できません。The priority class cannot be viewed using System Monitor. 次の表は、リレーションシップ、BasePriorityPriorityClass値。The following table shows the relationship between the BasePriority and PriorityClass values.

BasePriorityBasePriority PriorityClassPriorityClass
44 Idle
88 Normal
1313 High
2424 RealTime

セキュリティ

LinkDemand
直前の呼び出し元に対する完全な信頼。for full trust for the immediate caller. このメンバーは、部分的に信頼されているコードから使用することはできません。This member cannot be used by partially trusted code.

適用対象

こちらもご覧ください