Re: [問題] 如何中斷跑到一半的程式

看板java作者 (LaPass)時間13年前 (2012/08/29 14:30), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/3 (看更多)
以下範例徒手key的,可能會打錯字,以及少做try...catch之類的 請自已修正 法一: Thread + 設個flag去判斷 class UI{ ... .... Thread t; boolean b=true; public void StartButton(){ t=new Thread(new Runnable(){ void run(){ while(b) { //要做的一些事情 } } }); } public void StopButton(){ b=false; } } 這種方法比較好,有些東西做到一半被停掉的話會很麻煩 用flag的方式比較能讓程式自己決定該不該中止,以及把一些該收尾的事情做一做 但這也只適用於迴圈類型的程式 法二: class UI{ ... .... Thread t; public void StartButton(){ t=new Thread(new Runnable(){ void run(){ //要做的一些事情 } }); } public void StopButton(){ if(t!=null)t.interrupt(); } } 用interrupt去中斷他 但是,印象中如果有像這樣的片段 try { } finally { } 會直接被中斷掉,而不會去做finally的動作去收尾 還有,如果是第一次使用執行緒的話 請去看一下關於執行緒安全之類的問題、文章 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.16.65

08/29 14:31, , 1F
呼叫 interrupt() 只是把 interrupt flag 設成 True
08/29 14:31, 1F

08/29 14:41, , 2F
感謝,我會在試試
08/29 14:41, 2F
文章代碼(AID): #1GFRR-nh (java)
文章代碼(AID): #1GFRR-nh (java)