0
我有一个实现Runnable接口(用于可读性,我已经简化它)计算类:为什么在可观察对象作为新线程运行时没有通知观察者?
public class ColorReduction extends Observable implements Runnable {
public ColorReduction(Layer inputLayer, Layer outputLayer) {
this.init();
}
private void init() {
addObserver(new ActionObserver());
}
public void run(){
notifyObservers(EAction.COLOR_REDUCTION_START);
setChanged();
// some computation stuff.....
notifyObservers(EAction.COLOR_REDUCTION_FINISH);
setChanged();
}
}
,并在控制器我运行这个类作为一个新的线程:
ColorReduction cr = new ColorReduction(model.getInputLayer(), model.getOutputLayer());
Thread t = new Thread(cr);
t.start();
问题:观察员(ActionObserver
)仅在颜色缩小阶段结束时(COLOR_REDUCTION_FINISH
)通知,而不是在本阶段开始时(COLOR_REDUCTION_START
)。
我的代码有什么问题?