请教:关于终止线程

ribut9225 ribut9225 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我程序界面上有一个进度条控件JSlider,在线程中控制进度条物循环显示
我的想法是按“启动”时,开始循环,按“停止”时,停止循环
现在的问题是,启动开始循环没有问题,但是按下停止时,进度条依然在前进,没有停止
请指点

按钮的代码

MyThread r2 = new MyThread(sd1);

if ( btnSd.getText().equals("启动")) {
r2.bStop = true;
r2.start();
btnSd.setText("停止");
}
else {
r2.bStop = false;
r2.interrupt();
btnSd.setText("启动");
}


线程是继承Thread

public class MyThread extends Thread {
private JSlider iSd; //进度条控件,JSlider
public boolean bStop; //是否要终止线程

//类的构造函数
public MyThread(JSlider sd) {
iSd = sd;
nType = 2;
}

//重写run方法
@Override
public void run() {
for(int i=0;i<10;i++) {
if( !bStop) {
break; //用户终止线程
}

iSd.setValue(0);
int nPos;
while(iSd.getValue()<iSd.getMaximum()){

System.out.println(bStop);
if ( !bStop) {
break; //用户终止线程
}
nPos = iSd.getValue();
nPos++;
iSd.setValue(nPos);
try {
this.sleep(10);
}
catch(InterruptedException e) {
System.out.println("err");
}
}
}
}
}

...全文

相关推荐

面试官:如何终止线程?有几种方式?

面试官提问如何终止线程,通常是为了考察开发者对线程管理的理解和实践经验。下面我们将详细探讨三种常见的线程终止方法:1. **使用退出标志终止线程**: 这是最常用且推荐的方法。

weixin_38589150

windows C++多线程(三):线程终止结束ExitThread与TerminateThread

终止线程运行,最好的方法是自然返回return结束。在微软创建多线程API时,C/C++运行时库还不太成熟,导致一些API的调用与CRT会出冲突,使用CreateThread创建线程,并不是很推荐的,需要使用_beginthread。谈到线程终止,就得扯扯如下两个问题了 ExitThread() TerminateThread() 使用以上两个函数结束线程时,正常的return...

令狐掌门

Java并发编程示例(六):等待线程执行终止

在Java并发编程中,等待线程执行终止是一个关键的概念,特别是在多线程环境中需要确保某个任务完成后才能继续执行后续操作的场景。

weixin_38727798

C# 如何挂起线程、休眠线程和终止线程(源码例)

休眠线程是一种避免线程过度占用CPU资源的好方法,尤其在需要定时执行或者需要其他线程执行特定任务时。3. **终止线程**:终止线程是指强制结束线程的执行,使其不再继续运行。

kdy953

怎么干净的终止一个线程

首先,让我们来看看如何通过插入异常来终止线程。这种方法通常涉及以下步骤:1. 暂停目标线程:使用操作系统提供的API(例如Windows中的`SuspendThread`)暂停线程的执行。

hmm_2010_11_05
评论 19
收藏 已收藏
分享
返回顶部
ribut9225
Java SE 62,620 成员 307,251 内容