亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
1592
2022-05-30
process類有close和kill方法,兩者的區別是kill是立即終止進程實體,相當于在進程管理器窗口中執行結束進程操作;但process組件/對象的進行信息還在,包括進程關閉時間等信息可以查看。 close方法是釋放組件/對象資源。這時進程不一定終止,但當前操作的組件/對象資源卻被釋放,后續無法再訪問。
所以,我們要執行一個類似于進程管理窗口中結束進程的操作,需要先通過GetProcessesByName獲取到一個進程組件/對象,再通過kill方法終止其關聯的進程實體,最后調用close釋放組件資源。順序不能反,否則close釋放組件資源后,就無法訪問和進程實體關聯的資源,造成異常。
如果要優雅的關閉進程,就需要給進程發送一個事件/消息,進程內部做邏輯處理,判斷收到結束事件/消息后進行相關處理終止及釋放處理,再自己退出(exit)進程。
MSDN關于幾個方法的說明: GetProcessesByName(String)?創建新的?Process?組件的數組,并將它們與本地計算機上共享指定的進程名稱的所有進程資源關聯。 Start() 啟動(或重用)此?Process?組件的?StartInfo?屬性指定的進程資源,并將其與該組件關聯。 Kill() 立即停止關聯的進程。 Close() 釋放與此組件關聯的所有資源。
msdn process?https://docs.microsoft.com/zh-cn/dotnet/api/system.diagnostics.process?view=netframework-4.8
Processing Windows
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。