循环在哪儿?ShowTime()?
我用jdk14没有stop了,要自己判断。
如:while(isStop){
ShowTime();
}
停止时isStop=false;
我用jdk14没有stop了,要自己判断。
如:while(isStop){
ShowTime();
}
停止时isStop=false;
解决方案 »
- AOP
- 最蛋疼的问题(内部类),挑战你得忍耐。
- 新手求助:applet嵌入html 点浏览器关闭按钮后为什么不执行destroy
- 简单代码,大家帮忙看一下,我说的对吗??
- java excel
- 关于CORE JAVA 一些问题请教
- 关于cvs的简单问题
- 怎么在java里给数据库插入一条新记录然后立刻取出此条记录的id(sqlserver).而不会取到几乎同时插入的别人的记录id
- 看到别人写的manifest文件这么复杂,我真不敢相信,请问哪里可以学习写manifest文件?
- 名字问题[问问]
- 求教:JAVA中那个byte数据类型怎么使用?
- 请问:String 到底是什么东西?用在哪?怎么越来越晕了!!
mm = thetime;
String temp;
int i;
i = 1;
while(i * 60 < mm) { i++; }
hh = i - 1;
mm = mm - 60 * hh;
ss = 0;
while(hh > 0 || mm > 0 || ss > 0) {
try {
Thread.sleep(1000);
}
catch(InterruptedException ee) {
System.out.println("erro" + ee);
} if(ss == 0) {
if( mm == 0) {
if(hh==0) {
//this.destroy();
}
else {
hh--;
mm = 59;
ss = 59;
}
}
else {
mm--;
ss = 59;
}
}
else {
ss--;
}
if(hh < 10) { temp=new String(" 0"+String.valueOf(hh)+" 小时 "); }
else { temp=new String(" "+String.valueOf(hh)+" 小时 ");}
if(mm < 10) { temp=new String(temp+"0"+String.valueOf(mm)+" 分 "); }
else { temp=new String(temp+String.valueOf(mm)+" 分 "); }
if(ss < 10) { temp=new String(temp+"0"+String.valueOf(ss)+" 秒 "); }
else { temp=new String(temp+String.valueOf(ss)+" 秒 "); }
Stime.setText(temp);
this.validate();
if((hh == 0) && (mm == 0) && (ss == 0)) {
// 结束
taktime=thetime;
CenterPanel.setVisible(false);
ConnectCGI(theurl+"?" + Result());
}
}
}
在写线程时记住两点,首先一个线程时不应该让另外一个线再来停止它的,你上面的代码就是犯了这个错误。第二,run函数里面应该是个循环,不管什么样的循环,都有它的break point,这就是你这个线程结束的case.
循环怎么写,?showtime里应该怎么写?
我感觉你生成这个线程有问题:每当你触发这个事件时都会建立一个线程对象,这没有必要。
这个线程不应该在事件中建立。
如果是只是时间处理,不如直接用timer类,省去了线程维护。
如果你在这个线程的外部调用了interrupt函数,而这个东西正在sleep,那么可以通过那个异常终止,但是如果线程此时在运行怎么办?
比如
boolean isOk=true;
while(isOk)
{
if(!isOk) break;
}
在另一个线程中可以改变该上isOk的value