HOW TO:重新整理處理序元件屬性
更新:2007 年 11 月
Process 元件的屬性是儲存在快取區中。這些屬性是用於儲存處理序 (與元件繫結) 的屬性值。
這些屬性是直到您從處理序傳送第一個屬性要求時才會填入。此時元件會將其繫結處理序的屬性值填入它的快取屬性。當提出後續屬性值要求時,元件並不會更新這資訊。
若要檢視目前的屬性值,您必須在要求處理序的屬性值之前,先呼叫 Process 元件的 Refresh 方法。當您呼叫 Refresh 方法時,目標處理序屬性的目前資料會取代元件屬性中的值。
若要重新整理 Process 元件屬性
以程式設計的方式或是藉由在設計檢視中將 Process 元件加入專案的方式,來建立處理序的執行個體。如需詳細資訊,請參閱 HOW TO:繫結至現有的處理序。
如果在擷取屬性資訊之前處理序屬性發生任何變更,請呼叫 Refresh 方法。
將屬性設定來讀取適當處理序資訊並將傳回值指派給變數。
以下範例將說明如何開啟記事本的執行個體,接著呼叫 Refresh 方法來更新元件的屬性。然後程式碼將讀取元件的已更新 WorkingSet64 屬性,將配置傳回給相關聯處理序的總記憶體量。接著會將更新的屬性值寫入主控台螢幕六次,每次間隔 2 秒。在完成程序後,主控台會維持 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);