Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ruft die allgemeine Prioritätskategorie für den zugeordneten Prozess ab oder legt diese fest.
Namespace: System.Diagnostics
Assembly: System (in system.dll)
Syntax
'Declaration
Public Property PriorityClass As ProcessPriorityClass
'Usage
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)
Eigenschaftenwert
Die Prioritätskategorie für den zugeordneten Prozess, aus der die BasePriority des Prozesses berechnet wird.
Ausnahmen
| Ausnahmetyp | Bedingung |
|---|---|
Informationen über die Prozesspriorität konnten von der zugeordneten Prozessressource nicht festgelegt oder abgerufen werden. – oder – Die Prozess-ID oder das Prozesshandle ist 0. (Der Prozess wurde nicht gestartet.) |
|
Sie versuchen, auf die PriorityClass-Eigenschaft für einen auf einem Remotecomputer ausgeführten Prozess zuzugreifen. Die Eigenschaft ist nur für Prozesse verfügbar, die auf dem lokalen Computer ausgeführt werden. – oder – Die Id des Prozesses ist nicht verfügbar. |
|
Sie haben bei der Verwendung von Windows 98 oder Windows Millennium Edition (Windows Me) die PriorityClass auf AboveNormal oder BelowNormal festgelegt. Diese Plattformen unterstützen diese Werte für die Prioritätsklasse nicht. |
Hinweise
Eine Prioritätsklasse eines Prozesses umfasst einen Bereich von Threadprioritätsebenen. Mit unterschiedlichen Prioritäten im Prozess ausgeführte Threads werden relativ zur Prioritätsklasse des Prozesses ausgeführt. Win32 verwendet vier Prioritätsklassen mit sieben Basisprioritätsebenen pro Klasse. Diese Prozessprioritätsklassen werden in der ProcessPriorityClass-Enumeration erfasst, über die Sie die Prozesspriorität auf Idle, Normal, High, AboveNormal, BelowNormal oder RealTime festlegen können. Das Betriebssystem kann je nach verstrichener Zeit oder anderen die Priorität erhöhenden Faktoren die Basisprioritätsebene ändern, wenn ein Prozess für den Zugriff auf den Prozessor anderen Prozessen vorangestellt werden muss. Außerdem können Sie PriorityBoostEnabled festlegen, um die Prioritätsebene der Threads vorübergehend zu erhöhen, die aus dem Wartezustand genommen wurden. Die Priorität wird zurückgesetzt, wenn der Prozess wieder in den Wartezustand zurückkehrt.
Über die BasePriority-Eigenschaft können Sie die einem Prozess zugewiesene Startpriorität anzeigen lassen. Da diese jedoch schreibgeschützt ist, können Sie die Priorität eines Prozesses nicht über die BasePriority-Eigenschaft festlegen. Verwenden Sie zum Ändern der Priorität die PriorityClass-Eigenschaft, die die allgemeine Prioritätskategorie für den Prozess festlegt oder abruft.
Die Prioritätsklasse kann nicht mit dem Systemmonitor angezeigt werden. Die folgende Tabelle veranschaulicht die Beziehung zwischen den BasePriority-Werten und den PriorityClass-Werten.
BasePriority |
PriorityClass |
|---|---|
4 |
Idle |
8 |
Normal |
13 |
High |
24 |
RealTime |
Hinweis zu Windows 98, Windows Millennium Edition: Durch Festlegen der Prioritätsklasse auf AboveNormal oder BelowNormal wird eine Ausnahme ausgelöst.
Beispiel
Im folgenden Beispiel wird eine Instanz von Editor gestartet. Anschließend werden in dem Beispiel verschiedene Eigenschaften des zugeordneten Prozesses abgerufen und angezeigt. Im Beispiel wird festgestellt, wann der Prozess beendet wird, und der Exitcode des Prozesses wird angezeigt.
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-Sicherheit
- SecurityPermission zum Aufrufen von Process-Membern. Anforderungswert: LinkDemand; Benannte Berechtigungssätze: FullTrust.
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
Process-Klasse
Process-Member
System.Diagnostics-Namespace
Process.BasePriority-Eigenschaft
Process.PriorityBoostEnabled-Eigenschaft