2008年11月27日 星期四

Process.WaitForExit 方法

設定要等待相關的處理序結束的時間,並且阻止目前的執行緒執行,直到等候時間耗盡或者處理序已經結束為止。

名稱說明
Process.WaitForExit ()指示 Process 元件無限期等候相關處理序的結束。

受 .NET Compact Framework 支援。

Process.WaitForExit (Int32)指示 Process 元件等候指定毫秒數,讓相關的處理序結束。

受 .NET Compact Framework 支援。




WaitForExit 用來使目前執行緒等候直到相關的處理序終止。

WaitForExit 的這個多載會指示 Process 元件等候一段時間,讓處理序結束。如果相關的處理序因為終止要求被拒絕,而沒有在間隔結束前結束,會傳回 false 至呼叫的程序。您可以為 milliseconds 指定負數,但是 WaitForExit 會將它視為非常大的正數。如果傳遞零給方法,它只會在處理序已經結束的情況下傳回 true。

當相關的處理序結束 (被作業系統正常或異常終止關閉時),系統會將處理序的管理資訊儲存起來,並傳回至呼叫 WaitForExit 的元件。Process 元件便可以利用結束的處理序的 Handle,存取包含 ExitTime 在內的資訊。

因為相關的處理序已經結束,元件的 Handle 屬性不再指向現有的處理序資源。而控制代碼只能用來存取有關處理序資源的作業系統資訊。系統會察覺尚未被 Process 元件釋放之結束的處理序的控制代碼,所以會將 ExitTime 和 Handle 資訊保留在記憶體中,直到 Process 元件明確的釋放資源為止。因此,每次要為 Process 執行個體呼叫 Start 時,都要在相關的處理序已經終止,且您不再需要有關它的任何管理資訊時,才呼叫 Close。Close 會釋放配置給已經結束的處理序的記憶體。

沒有留言: