我正在使用这个标准构造函数:
new Thread(myRunnable);
其中 myRunnable 是具有 Runnable 接口的自定义对象。
在线程过程中我需要访问那个可运行对象(告诉进程状态和进度),我该怎么办?
如果我的对象是一个线程,我会使用:
(MyThread) Thread.getCurrentThread()
但是作为参数传递的runnable我无法得到。
编辑
这是我的代码结构:
public abstract class ProgressThread{
private float progress; //... progress getter, setter...
}
public class MyRunnable extends ProgressThread implements Runnable{
public void run(){
//starting processes...
Job1 j1=new Job1().do();
Job1 j2=new Job2().do();
}
private class Job1(){
for(int i=0;i<10;i++){
// do something
float progress=i/10;
// set job progress in thread
Thread.getCurrentThread().getRUNNABLE().setProgress(progress);
}
}
}
这就是为什么我需要 getRUNNABLE() 方法(或解决方法!)。谢谢。