class timeThread implements Runnable{
private boolean running = false;
private boolean waiting = false;
private Thread thread;
public timeThread(){
thread = new Thread(this);
}
//启动线程
public void start(){
running = true;
if(!thread.isAlive())
thread.start();
}
//停止线程
public void stop(){
if(!running){
return;
}
synchronized (this) {
running = false;
}
}
//挂起
public void suspend(){
if(waiting){
return;
}
synchronized (this) {
this.waiting = true;
}
}
//唤醒
public void resume(){
if(!waiting){
return;
}
synchronized (this) {
this.waiting = false;
this.notifyAll();
}
}
public void run() {
//if(listni!=null && list.size()!=0)
for(int i=0;i<listni.size();i++){
try {
synchronized (this) {
if(!running){
break;
}
if(waiting){
this.wait();
}
}
} catch (InterruptedException e) {
e.printStackTrace();
}
runClsThread();//...具体操作方法而已
try {
Thread.sleep(time);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
display.asyncExec(new Runnable() {
public void run() {
MessageDialog.openInformation(shell, "回播提示", "回播结束!");
playProgressBar.dispose();
}
});
Thread.currentThread().interrupt();
}
}
private boolean running = false;
private boolean waiting = false;
private Thread thread;
public timeThread(){
thread = new Thread(this);
}
//启动线程
public void start(){
running = true;
if(!thread.isAlive())
thread.start();
}
//停止线程
public void stop(){
if(!running){
return;
}
synchronized (this) {
running = false;
}
}
//挂起
public void suspend(){
if(waiting){
return;
}
synchronized (this) {
this.waiting = true;
}
}
//唤醒
public void resume(){
if(!waiting){
return;
}
synchronized (this) {
this.waiting = false;
this.notifyAll();
}
}
public void run() {
//if(listni!=null && list.size()!=0)
for(int i=0;i<listni.size();i++){
try {
synchronized (this) {
if(!running){
break;
}
if(waiting){
this.wait();
}
}
} catch (InterruptedException e) {
e.printStackTrace();
}
runClsThread();//...具体操作方法而已
try {
Thread.sleep(time);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
display.asyncExec(new Runnable() {
public void run() {
MessageDialog.openInformation(shell, "回播提示", "回播结束!");
playProgressBar.dispose();
}
});
Thread.currentThread().interrupt();
}
}