如何:刷新进程组件属性
更新:2007 年 11 月
Process 组件的属性存储在缓存中。属性用于存储组件绑定到的进程的属性值。
直到从进程发出第一个属性请求时才填充属性。这时,组件用它绑定到的进程的属性值来填充它的缓存属性。发出后面的属性值请求时,组件不更新这些信息。
若要查看当前属性值,必须在请求进程的属性值之前调用 Process 组件的 Refresh 方法。调用 Refresh 方法时,组件的属性值被替换为目标进程属性中的当前数据。
刷新进程组件属性
以编程方式创建进程的实例,或者通过在“设计”视图中为项目添加 Process 组件来创建进程的实例。有关更多信息,请参见如何:绑定到现有进程。
如果在检索属性信息前进程属性发生了任何更改,则应调用 Refresh 方法。
设置相应属性以读取适当进程信息并将返回值分配给变量。
下面的示例显示如何打开记事本实例,然后调用 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);