Прочитать на английском

Поделиться через


Process.Refresh Метод

Определение

Удаляет любые кэшированные внутри компонента процесса сведения о связанном процессе.

public void Refresh ();

Примеры

В следующем примере запускается экземпляр Блокнота. Затем он получает данные об использовании физической памяти связанным процессом с интервалом в 2 секунды в течение не более 10 секунд. В примере определяется, завершается ли процесс до истечения 10 секунд. В этом примере процесс закрывается, если он по-прежнему выполняется через 10 секунд.

using System;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Threading;

namespace ProcessSample
{
    class MyProcessClass
    {
        public static void Main()
        {
            try
            {
                using (Process myProcess = Process.Start("Notepad.exe"))
                {
                    // Display physical memory usage 5 times at intervals of 2 seconds.
                    for (int i = 0; i < 5; i++)
                    {
                        if (!myProcess.HasExited)
                        {
                            // Discard cached information about the process.
                            myProcess.Refresh();
                            // Print working set to console.
                            Console.WriteLine($"Physical Memory Usage: {myProcess.WorkingSet}");
                            // Wait 2 seconds.
                            Thread.Sleep(2000);
                        }
                        else
                        {
                            break;
                        }
                    }

                    // Close process by sending a close message to its main window.
                    myProcess.CloseMainWindow();
                    // Free resources associated with process.
                    myProcess.Close();
                }
            }
            catch (Exception e) when (e is Win32Exception || e is FileNotFoundException)
            {
                Console.WriteLine("The following exception was raised: ");
                Console.WriteLine(e.Message);
            }
        }
    }
}

Комментарии

После Refresh вызова метода первый запрос сведений о каждом свойстве приводит к тому, что компонент процесса получает новое значение из связанного процесса.

Process Если компонент связан с ресурсом процесса, значения Process свойств объекта немедленно заполняются в соответствии с состоянием связанного процесса. Если сведения о связанном процессе впоследствии изменяются, эти изменения не отражаются в Process кэшированных значениях компонента. Компонент Process является snapshot ресурса процесса на момент их связывания. Чтобы просмотреть текущие значения связанного процесса, вызовите Refresh метод .

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1