讓終止執行緒

2021-04-09 00:58:38 字數 1068 閱讀 8327

1、將執行緒設定為後台執行,在程式退出時,將自動終止執行緒.

example:thread.isbackground = true;

2、在呼叫執行緒的外層try..catch結構體中擷取system.threading.threadabortexception

trycatch( system.threading.threadabortexception exp ){}

catch...

下面是sdk中對於執行緒中止方法的說明:

注意   當執行緒對自身呼叫

abort 時,效果類似於引發異常;

threadabortexception 會立刻發生,並且結果是可預知的。但是,如果乙個執行緒對另乙個執行緒呼叫

abort,則將中斷執行的任何**。在

finally 塊執行時執行緒可能會終止,在這種情況下,

finally 塊將被終止。還有一種可能就是靜態建構函式被終止。在極少數情況下,這可以防止在該應用程式域中建立該類的例項。

執行緒不一定會立即中止,或者根本不中止。如果執行緒在作為中止過程的一部分被呼叫的 finally 塊中做非常大量的計算,從而無限期延遲中止操作,則會發生這種情況。若要確保執行緒已經中止,請在呼叫 abort 之後對執行緒呼叫 join 方法。

如果對尚未啟動的執行緒呼叫 abort,則當呼叫 start 時該執行緒將中止。如果對已掛起的執行緒呼叫 abort,則該執行緒將繼續然後中止。如果對被阻塞或正在休眠的執行緒呼叫 abort,則該執行緒被中斷然後中止。如果在執行非託管**時執行緒忽略 threadabortexception,則當執行緒開始執行託管**時,系統將再次引發 threadabortexception。

如果同時出現兩次對 abort 的呼叫,則可能乙個呼叫設定狀態資訊,而另乙個呼叫執行 abort。但是,應用程式無法區分這一點。

對執行緒呼叫了 abort 後,執行緒狀態包括 abortrequested。成功呼叫 abort 而使執行緒終止後,執行緒狀態更改為 stopped。如果有足夠的許可權,作為 abort 目標的執行緒就可以使用 resetabort 方法取消中止操作。有關說明如何呼叫 resetabort 方法的示例,請參見 threadabortexception 類。

執行緒 終止執行緒執行

stop 方法 缺點 強制終止會丟資料 不建議使用 public class myfile catch interruptedexception e 5秒後終止執行緒 t.stop 已過時,強制終止會丟資料 class myrunnable implements runnable catch int...

多執行緒 執行緒終止

stop 中止執行緒,並且清除監視器鎖的資訊,可能導致執行緒安全問題。destroy 從未實現過這個方法 public class demo thread.print public class stopthread extends thread catch interruptedexception ...

11 5執行緒終止

如果程序中的任一線程呼叫了exit,exit 或者 exti,那麼整個程序會終止。類似的,當預設動作是終止程序,傳送到執行緒的訊號會終止整個程序。在12.8節中我們會討論更多執行緒和訊號間的互動與通訊 乙個單執行緒有三種退出方式,在不終止整個程序的情況下,終止執行緒的控制流。1.執行緒從啟動例程中返...