我創建命名爲ThreadClass(這是因爲你可以看到一個線程)一個下面的類,它的結構是一樣的東西下面使用Thread.stop(),最後
class SomeTask implements Runnable
{
boolean someCondition=true;
public void run() {
try
{
while(someCondition)
{
//Here goes the Process Code
}
}
catch(Exception errorException)
{
//Catching the Exception
}
finally
{
////I expect that this finally should run every time ,whatever happens in the world
}
}
}
我的問題是關於終於塊和停止()方法
如上類實現Runnable,所以我可以創建這個類的對象,並通過調用啓動(啓動它的一個線程) method.I也很清楚知道的我可以停止這個事實使用停止()(是的,我知道它已被棄用)的方法。
我想澄清自己的是,如果不知何故,我需要調用stop方法ThreadClass的對象上,然後我可以依靠終於塊即使線程停止執行調用停止( ),因爲我在finally塊中做了一些重要的關閉事情。
@nobalG我想你是部分問錯了問題。應該沒有「如果我需要調用已棄用的方法」。以不需要棄用方法的方式設計您的應用程序。那麼你不必考慮如果你打電話給他們會發生什麼。 – GhostCat 2015-03-31 06:36:51
實現'myStop()'方法會不會更好,它會將條件設置爲'false',所以while循環實際上停止了嗎?即使你需要在你停下來的時候再運行它,你可以保存你的變量/狀態,並繼續從 – Loki 2015-03-31 06:37:46
@EddyG我知道我可以做到這一點,我只是在這個特殊情況下要求 – nobalG 2015-03-31 06:38:41