如何:刷新进程组件属性

更新:2007 年 11 月

Process 组件的属性存储在缓存中。属性用于存储组件绑定到的进程的属性值。

直到从进程发出第一个属性请求时才填充属性。这时,组件用它绑定到的进程的属性值来填充它的缓存属性。发出后面的属性值请求时,组件不更新这些信息。

若要查看当前属性值,必须在请求进程的属性值之前调用 Process 组件的 Refresh 方法。调用 Refresh 方法时,组件的属性值被替换为目标进程属性中的当前数据。

刷新进程组件属性

  1. 以编程方式创建进程的实例,或者通过在“设计”视图中为项目添加 Process 组件来创建进程的实例。有关更多信息,请参见如何:绑定到现有进程

  2. 如果在检索属性信息前进程属性发生了任何更改,则应调用 Refresh 方法。

  3. 设置相应属性以读取适当进程信息并将返回值分配给变量。

    下面的示例显示如何打开记事本实例,然后调用 Refresh 方法来更新组件的属性。代码然后读取组件更新后的 WorkingSet64 属性,以返回分配给关联进程的全部内存量。更新的属性值随后会以 2 秒为间隔向控制台屏幕写 6 次。此过程完成后,控制台将保持打开状态 5 秒钟。

    Dim Notepad As New Process()
    Dim i As Integer
    Notepad = Process.Start("Notepad.exe")
    For i = 0 To 5
        ' Forces the Process component to get a new set of property values.
        Notepad.Refresh()
        ' Writes the property value to the console screen.
        Console.WriteLine(Notepad.WorkingSet64)
        ' Waits two seconds before running the next loop.
        System.Threading.Thread.Sleep(2000)
    Next
    ' Closes Notepad and waits 5 seconds before closing the console screen.
    Notepad.CloseMainWindow()
    System.Threading.Thread.Sleep(5000)
    
         Process notepad;
            notepad = Process.Start("Notepad");
            for (int i = 0; i < 5; i++)
            {
                // Forces the Process component to get a new set 
                // of property values.
                notepad.Refresh();
                // Writes the property value to the console screen.
                Console.WriteLine(notepad.WorkingSet64.ToString());
                // Waits two seconds before running the next loop.
                System.Threading.Thread.Sleep(2000);
            }
            // Closes Notepad and waits 5 seconds before closing 
            // the console screen.
            notepad.CloseMainWindow();
            System.Threading.Thread.Sleep(5000);
    

请参见

任务

如何:绑定到现有进程

如何:查看运行的进程

概念

关于监视和管理 Windows 进程的介绍

其他资源

监视和管理 Windows 进程