このプロセスのユーザー プロセッサ時間を取得します。
名前空間: System.Diagnostics
アセンブリ: System (system.dll 内)
構文
'宣言
Public ReadOnly Property UserProcessorTime As TimeSpan
'使用
Dim instance As Process
Dim value As TimeSpan
value = instance.UserProcessorTime
public TimeSpan UserProcessorTime { get; }
public:
property TimeSpan UserProcessorTime {
TimeSpan get ();
}
/** @property */
public TimeSpan get_UserProcessorTime ()
public function get UserProcessorTime () : TimeSpan
プロパティ値
関連付けられたプロセスが、プロセスのアプリケーション部分の内部 (オペレーティング システム コアの外部) でコードを実行した時間を示す TimeSpan。
例外
例外の種類 | 条件 |
---|---|
プラットフォームが Windows 98 または Windows Millennium Edition (Windows Me) です。このプロパティはサポートされません。 |
使用例
メモ帳のインスタンスを起動する例を次に示します。この例では、インスタンスの起動後、関連付けられているプロセスのさまざまなプロパティが取得および表示されます。その後、プロセスの終了を検知し、プロセスの終了コードを表示します。
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 のセキュリティ
- SecurityPermission (Process のメンバを呼び出すためのアクセス許可)。要求値 : LinkDemand、名前付きアクセス許可セット、FullTrust。
プラットフォーム
Windows 98, Windows 2000 SP4, Windows CE, 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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 2.0、1.1、1.0
参照
関連項目
Process クラス
Process メンバ
System.Diagnostics 名前空間
Process.UserProcessorTime プロパティ
Process.PrivilegedProcessorTime プロパティ