我正在執行一些對時間敏感的操作,並且有一個與它們關聯的超時。檢測超時可調用實例
此超時機制是使用Java Callable類實現的。
問題是,在可調用實例中,我執行一個異步任務,並使用匿名接口實現(偵聽器)。
我的問題是,當超時觸發和callable被取消。異步回調仍然執行並破壞我的程序狀態。
如何防止這些回調發射?我是否只包含一個布爾值來指示是否發生超時或者是否有另一種實現此目的的方式?
謝謝。
碼參考:
Callable<Object> callableTransaction = new Callable<Object>() {
@Override
public Object call() throws Exception {
Callback callback = new Callback() {
// Do stuff here and change program state.
};
performAsyncOperation(callback);
return ActionProcessor.OPERATION_COMPLETE;
}
};