Re: [問題] 如何中斷跑到一半的程式
以下範例徒手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
08/29 14:31, 1F
推
08/29 14:41, , 2F
08/29 14:41, 2F
討論串 (同標題文章)