除了這里所有其他好的答案之外,讓我補(bǔ)充一點(diǎn),對(duì)線程的調(diào)用是沒有任何保證的,事實(shí)上,Abort會(huì)中止所討論的線程。可以(雖然不是特別容易)“硬化”線程以防止中止。例如,如果您認(rèn)為某個(gè)線程正在運(yùn)行敵對(duì)代碼,則該敵對(duì)代碼可能正在抵抗其自身的破壞。
如果您有一個(gè)長(zhǎng)期運(yùn)行的操作,涉及您不擁有的代碼,而這些代碼必須干凈地刪除,則正確的方法是將該代碼放入自己的代碼中。加工過程而不是它自己的線。(最好是在該過程中高度安全的應(yīng)用程序域中。)然后,您可以干凈地終止該過程。
總之,Thread.Abort充其量只能表明設(shè)計(jì)錯(cuò)誤,可能不可靠,而且極其危險(xiǎn)。應(yīng)該不惜一切代價(jià)避免它;您甚至應(yīng)該考慮中止線程的唯一時(shí)間是在某種類型的“緊急關(guān)機(jī)”代碼中,您試圖盡可能清晰地刪除appDomain。