我正在尝试编写一个程序,以在整个程序运行过程中不断检查变量的变化。这是否需要线程中的无限循环?
问问题
2511 次
4 回答
1
有比定期轮询变量值更好的选择。轮询可能会错过变量更改,即使没有发生任何事情,它也需要计算资源。
您可以将变量包装在包装类中,并仅通过设置器更改它。
如果您使用的是 Eclipse,则可以在值更改时要求调试器停止。
于 2013-04-06T15:07:12.463 回答
0
为您的变量使用包装类,例如:
class VarWrapper{
private Object myVar;
public Object getMyVar() {
return myVar;
}
public void setMyVar(Object myVar) {
//[1],Here you'll know myVar changed
this.myVar = myVar;
}
}
于 2013-04-06T15:06:27.213 回答
0
Class Test{
private int var;
public void setVariable(int var){
this.var = var;
varChangedCallBack();
}
public void varChangedCallBack(){
//Do something on var changed
}
}
由于上面的变量是私有的,因此只能通过 setter 进行更改。更改后我们调用回调方法,您可以在其中对变量更改做任何您想做的事情。
于 2013-04-06T15:07:34.110 回答
0
如果您有一个专用线程来检查变量状态,那么应该通过对象上的同步通知唤醒这个等待线程来完成。等待线程将在该对象上同步等待。
如果您没有专用线程,那么这就是观察者模式。http://en.wikipedia.org/wiki/Observer_pattern
于 2013-04-06T15:24:53.847 回答