
據我所知,每次我們想要停止一個應用程式(或凍結的應用程式)時,我們都會轉到任務管理器,選擇該應用程序,Go to Process
然後終止該進程。 「結束進程」優於「結束任務」(有時「結束任務」無論如何都不起作用)。
最終任務的圖像:
最終過程的圖像:
然而,http://technet.microsoft.com/en-us/library/bb726964.aspx:
在檢查進程時,請注意,儘管應用程式有一個主進程,但單一應用程式可能會啟動多個進程。通常,這些進程依賴主應用程式進程,並在您終止主應用程式進程或使用「結束任務」時停止。因此,您通常希望終止主應用程式進程或應用程式本身,而不是依賴進程。
他們說它比「結束任務」更可取,因為當我停止應用程式時該進程就會停止。但我根本不懂他們的邏輯,為什麼不乾脆停止這個過程呢?
Ending Task
相比有什麼優勢Ending Process
?
答案1
對於至少有一個視窗的程序,結束任務與單擊“關閉”按鈕的作用相同X- 它將WM_CLOSE
訊息發送到該窗口,要求其關閉。 (對於控制台窗口,相當於CTRL_CLOSE_EVENT
.) 程式可以提示使用者儲存更改,或執行各種清理任務。如果進程符合要求,任務管理器將等待幾秒鐘,如果進程仍在運行,則繼續終止該進程。
如果進程被凍結或以其他方式不處理它收到的視窗訊息,那麼,當然,結束任務關閉按鈕也不起作用。在這些情況下,Windows 通常會要求您強行結束該程序,但前提是給該程式足夠的時間來回應。
同時,結束進程按鈕本身不關心任務或視窗 - 它調用該TerminateProcess()
函數,Windows 立即銷毀該進程,而不通知它或給它任何清理的機會。
(進程消失後,內存等資源會自動釋放;但是,如果程式創建了各種臨時文件,則可能會殘留各種臨時文件,當然,如果進程在保存資料的過程中終止,則存在資料損壞的風險。
也可以看看:
- 視覺工作室雜誌。輕輕地殺死一個應用程式
答案2
其他兩個答案很好地解釋了兩者之間的區別什麼發生了,但只是為了了解它們在以下方面有何不同:如何發生這種情況時,前者告訴程式關閉,而後者則告訴 Windows殺該程式。
打個比方,這就像要求某人收拾東西並離開房間與告訴保鑣立即強行將他們推出房間之間的區別。
答案3
詳細說明:結束任務將嘗試正常關閉應用程式。如果它掛起,它會給你「立即結束」的選項。與終止進程相比,這為你帶來了兩個好處(只是用蠻力將其消滅):
- 為已在 Windows Vista(及更高版本)中註冊的應用程式啟用崩潰復原MSDN 簡要說明
- 允許發送錯誤報告
答案4
這只是術語上的差異。可能微軟幫助台西海岸說任務,而東海岸則使用技術上正確的流程。
從技術上講,它仍然終止進程。任務可能是顯示視窗的進程的包裝?任務管理器的幫助也沒有定義。