看板 java 關於我們 聯絡資訊
以下範例徒手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
byend:呼叫 interrupt() 只是把 interrupt flag 設成 True 08/29 14:31
f0987654:感謝,我會在試試 08/29 14:41