VC/MFC 強制結束當前進程

最近接手一個MFC老項目,Bug太多,主線程退出的時候,也不管子線程死活,直接退出導致子線程又去訪問那些被釋放的資源,結果程序無法關閉,或者導致進程在後臺駐留了

這裏提供一種簡單粗暴的方法:

//強行結束自己
void TerminateApp()
{
  HANDLE hself = GetCurrentProcess();   
  TerminateProcess(hself, 0); 
}

線程終止滿足如下條件之一:
1、線程函數返回
2、線程執行中調用ExitThread
3、同一進程下 任意線程調用TerminateThread指出該線程的Handle
4、同一進程下 任意線程調用TerminateProcess結束該線程所在的進程
5、該線程所在的進程中任意線程調用ExitProcess
由於高級語言編譯的程序在(正常)結束的時候都會調用ExitProcess,所以系統會強行終止它的所有線程(如果之前還沒結束的話)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章