Process.PriorityClass プロパティ
アセンブリ: System (system.dll 内)

Dim instance As Process Dim value As ProcessPriorityClass value = instance.PriorityClass instance.PriorityClass = value
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 を計算するときに使用する、関連付けられたプロセスの優先順位カテゴリ。

例外の種類 | 条件 |
---|---|
Win32Exception | プロセス優先順位情報が設定できませんでした。または、関連付けられたプロセスのリソースから取得できませんでした。 または |
SystemException | リモート コンピュータで実行されているプロセスの PriorityClass プロパティにアクセスしようとしています。このプロパティは、ローカル コンピュータで実行されているプロセスに対してだけ使用できます。 または |
PlatformNotSupportedException | Windows 98 または Windows Millennium Edition (Windows Me) を使用する場合に、PriorityClass を AboveNormal または BelowNormal に設定しました。これらのプラットフォームは、優先順位クラスに対するこれらの値をサポートしていません。 |

プロセスの優先順位クラスは、一定範囲のスレッドの優先順位に影響します。プロセスで実行される優先順位が異なるスレッドは、そのプロセスの優先順位クラスに対して相対的に実行されます。Win32 は 4 つの優先順位クラスと、クラスごとに 7 つの基本優先順位を使用します。これらのプロセス優先順位クラスは、ProcessPriorityClass 列挙体にキャプチャされています。これを使用して、プロセス優先順位を Idle、Normal、High、AboveNormal、BelowNormal、またはRealTime に設定できます。経過時間またはその他の要因に基づき、プロセスを他のプロセスよりも先にプロセッサにアクセスさせる必要があると判断された場合、オペレーティング システムが基本優先順位を変更することがあります。また、待機状態から抜けたときに一時的にスレッドの優先順位を上げるように、PriorityBoostEnabled を設定できます。プロセスが待機状態に戻ると、優先順位はリセットされます。
BasePriority プロパティによって、プロセスに割り当てられた初期優先順位を表示できます。ただし、読み取り専用であるため、BasePriority プロパティを使用してプロセスの優先順位は設定できません。優先順位を変更するには、プロセスの全体的な優先順位カテゴリを取得または設定する PriorityClass プロパティを使用します。
システム モニタを使用して優先順位クラスを表示することはできません。BasePriority 値と PriorityClass 値の関係を次の表に示します。
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(); } } }


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, 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
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ProcessPriorityClass 列挙体
アセンブリ: System (system.dll 内)

Public Enumeration ProcessPriorityClass

メンバ名 | 説明 | |
---|---|---|
AboveNormal | プロセスの優先順位を Normal より高く High より低く指定します。 | |
BelowNormal | プロセスの優先順位を Idle より高く Normal より低く指定します。 | |
High | [タスク一覧] ダイアログ ボックスなどの、ユーザーから呼び出されたらオペレーティング システムの負荷にかかわらずすぐに応答する必要のある、即時実行を要求される重要なタスクに対して、プロセス実行時間を指定します。このプロセスのスレッドは、Normal または Idle 優先順位クラスのプロセスのスレッドよりも優先します。 |

プロセスの優先順位クラスは、一定範囲のスレッドの優先順位に影響します。プロセスで実行される優先順位が異なるスレッドは、そのプロセスの優先順位クラスに対して相対的に実行されます。オペレーティング システムは、すべての実行可能なスレッドの基本優先順位を使用して、プロセッサ時間の次のスライスを取得するスレッドを決定します。
Win32 は 4 つの優先順位クラスと、クラスごとに 7 つの基本優先順位を使用します。経過時間またはその他の要因に基づいて、プロセスを他のプロセスよりも先にプロセッサがアクセスする必要があると判断された場合は、オペレーティング システムによって基本優先順位が変更されることがあります。また、待機状態から抜けたときに一時的にスレッドの優先順位を上げるように、PriorityBoostEnabled を設定できます。プロセスが待機状態に戻ると、優先順位はリセットされます。
Windows 98 プラットフォームメモ : 優先順位クラスを AboveNormal または BelowNormal に設定すると、例外がスローされます。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からProcess.PriorityClassを検索する場合は、下記のリンクをクリックしてください。

- Process.PriorityClassのページへのリンク