Process.WorkingSet Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Внимание!
This property has been deprecated. Please use System.Diagnostics.Process.WorkingSet64 instead. https://go.microsoft.com/fwlink/?linkid=14202
Внимание!
Process.WorkingSet has been deprecated because the type of the property can't represent all valid results. Use System.Diagnostics.Process.WorkingSet64 instead.
Внимание!
This property has been deprecated. Please use System.Diagnostics.Process.WorkingSet64 instead. http://go.microsoft.com/fwlink/?linkid=14202
Возвращает использование физической памяти связанного процесса (в байтах).
public:
property int WorkingSet { int get(); };
[System.Obsolete("This property has been deprecated. Please use System.Diagnostics.Process.WorkingSet64 instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public int WorkingSet { get; }
[System.Obsolete("Process.WorkingSet has been deprecated because the type of the property can't represent all valid results. Use System.Diagnostics.Process.WorkingSet64 instead.")]
public int WorkingSet { get; }
[System.Obsolete("This property has been deprecated. Please use System.Diagnostics.Process.WorkingSet64 instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public int WorkingSet { get; }
public int WorkingSet { get; }
[<System.Obsolete("This property has been deprecated. Please use System.Diagnostics.Process.WorkingSet64 instead. https://go.microsoft.com/fwlink/?linkid=14202")>]
member this.WorkingSet : int
[<System.Obsolete("Process.WorkingSet has been deprecated because the type of the property can't represent all valid results. Use System.Diagnostics.Process.WorkingSet64 instead.")>]
member this.WorkingSet : int
[<System.Obsolete("This property has been deprecated. Please use System.Diagnostics.Process.WorkingSet64 instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
member this.WorkingSet : int
member this.WorkingSet : int
Public ReadOnly Property WorkingSet As Integer
Значение свойства
Полное количество физической памяти в байтах, которое использует связанный процесс.
- Атрибуты
Примеры
В следующем примере запускается экземпляр Блокнота. Затем в примере извлекаются и отображаются различные свойства связанного процесса. В примере определяется, когда завершается процесс, и отображается код завершения процесса.
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int main()
{
try
{
Process^ myProcess;
myProcess = Process::Start( "NotePad.exe" );
while ( !myProcess->HasExited )
{
Console::WriteLine();
// Get physical memory usage of the associated process.
Console::WriteLine( "Process's physical memory usage: {0}", myProcess->WorkingSet.ToString() );
// Get base priority of the associated process.
Console::WriteLine( "Base priority of the associated process: {0}", myProcess->BasePriority.ToString() );
// Get priority class of the associated process.
Console::WriteLine( "Priority class of the associated process: {0}", myProcess->PriorityClass );
// Get user processor time for this process.
Console::WriteLine( "User Processor Time: {0}", myProcess->UserProcessorTime.ToString() );
// Get privileged processor time for this process.
Console::WriteLine( "Privileged Processor Time: {0}", myProcess->PrivilegedProcessorTime.ToString() );
// Get total processor time for this process.
Console::WriteLine( "Total Processor Time: {0}", myProcess->TotalProcessorTime.ToString() );
// Invoke overloaded ToString function.
Console::WriteLine( "Process's Name: {0}", myProcess->ToString() );
Console::WriteLine( "-------------------------------------" );
if ( myProcess->Responding )
{
Console::WriteLine( "Status: Responding to user interface" );
myProcess->Refresh();
}
else
{
Console::WriteLine( "Status: Not Responding" );
}
Thread::Sleep( 1000 );
}
Console::WriteLine();
Console::WriteLine( "Process exit code: {0}", myProcess->ExitCode.ToString() );
}
catch ( Exception^ e )
{
Console::WriteLine( "The following exception was raised: {0}", e->Message );
}
}
using System;
using System.Diagnostics;
using System.Threading;
namespace ProcessSample
{
class MyProcessClass
{
public static void Main()
{
try
{
using (Process myProcess = Process.Start("NotePad.exe"))
{
while (!myProcess.HasExited)
{
Console.WriteLine();
Console.WriteLine($"Physical memory usage : {myProcess.WorkingSet}");
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($"Process's Name : {myProcess}");
Console.WriteLine("-------------------------------------");
if (myProcess.Responding)
{
Console.WriteLine("Status: Responding to user interface");
myProcess.Refresh();
}
else
{
Console.WriteLine("Status: Not Responding");
}
Thread.Sleep(1000);
}
Console.WriteLine();
Console.WriteLine($"Process exit code: {myProcess.ExitCode}");
}
}
catch (Exception e)
{
Console.WriteLine($"The following exception was raised: {e.Message}");
}
}
}
}
Imports System.Diagnostics
Imports System.Threading
Namespace Process_Sample
Class MyProcessClass
Public Shared Sub Main()
Try
Using myProcess = Process.Start("NotePad.exe")
While Not myProcess.HasExited
Console.WriteLine()
Console.WriteLine($"Process's physical memory usage : {myProcess.WorkingSet}")
Console.WriteLine($"Base priority of the associated process : {myProcess.BasePriority}")
Console.WriteLine($"Priority class of the associated process : {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($"Process's name : {myProcess}")
Console.WriteLine("-------------------------------------")
If myProcess.Responding Then
Console.WriteLine("Status: Responding to user interface")
myProcess.Refresh()
Else
Console.WriteLine("Status: Not Responding")
End If
Thread.Sleep(1000)
End While
Console.WriteLine()
Console.WriteLine($"Process exit code: {myProcess.ExitCode}")
End Using
Catch e As Exception
Console.WriteLine($"The following exception was raised: {e.Message}")
End Try
End Sub
End Class
End Namespace 'Process_Sample
Комментарии
Значение, возвращаемое этим свойством, представляет последний обновленный размер используемой процессом памяти рабочего набора в байтах. Чтобы получить самый актуальный размер, сначала необходимо вызвать Refresh() метод .
Рабочий набор процесса —это набор страниц памяти, которые в настоящее время видны процессу в физической оперативной памяти (RAM). Эти страницы являются резидентными и доступны для использования приложением без активации ошибки страницы.
Рабочий набор включает как общие, так и частные данные. Общие данные включают страницы, содержащие все инструкции, выполняемые процессом, включая модули процесса и системные библиотеки.