TerminalThread是微軟極力不推薦的一個API,原因有不少,主要是有些問題沒法得到保證。
內存泄露
死鎖
以及一些其他API調用引起的副作用(Sleep)
今天就遇到在線程裏調用Sleep,使線程掛起,然後TerminalThread強行結束該線程,運氣不好的話(絕大多數情況下會運氣不好),進程最後死鎖。原因大概是Sleep函數會有一些需要釋放的東西沒有得到釋放造成的,具體原因就沒有深入的研究了,總之使用TerminalThread要慎之又慎,最理想的情況是讓線程自生自滅,其實大多數情況下是能夠從代碼上保證這一點的。