Java:有沒有辦法將偵聽器添加到Executor
? 我有一個集合Future
我試圖監視,以更新一些GUI狀態。目前我正在檢查後臺線程,如果提交/完成的任務存在差異,但我在while(true){}
塊中執行此操作,我不喜歡這種方法。有沒有辦法給Executor/Future添加一個監聽器?
回答
不幸的是,沒有辦法做到這一點。
而是使用Google的ListenableFuture<V>
interface。
或者,使用具有更好異步支持的語言,例如C#和TPL。
此接口需要實現... –
@AlexeiKaigorodov:請參閱文檔。請參閱http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/util/concurrent/ListeningExecutorService.html – SLaks
如果您想在任務完成時執行某些操作,請將其添加到任務本身。
public static <T> void addTask(Callable<T> tCall) {
executor.submit(new Runnable() {
public void run() {
T t = tCall.call();
// what you want done when the task completes.
process(t);
}
});
}
使用java.util.concurrent.ExecutorCompletionService而不是Executor來提交任務。它有方法take()返回最近完成的任務。啓動額外的線程(或SwingWorker),它將在循環中調用take()
,並用結果更新GUI狀態。
- 1. 有沒有辦法監聽另一個類的方法執行?
- 2. 有沒有辦法訪問一個進程的所有fs.watch監聽器?
- 3. 有沒有辦法給jqgrid treeview添加一個彙總行
- 4. 有沒有辦法刪除用ajaxSuccess創建的監聽器?
- 5. 有沒有辦法指定一個Doctrine事件監聽器的實體?
- 6. 有沒有辦法在JTable上添加一行選定的偵聽器?
- 7. 有沒有辦法給arrayadapter添加兩個文字視圖
- 8. 有沒有辦法給leiningen添加第二個src文件夾?
- 9. Clojurescript添加一個活動監聽器
- 10. 添加一個事件監聽器impress.js
- 11. 添加一個監聽器到leftBarButtonItem
- 12. 有沒有什麼辦法可以根據計時器來刪除和添加監聽器?
- 13. 有沒有辦法監聽flash.display.DisplayObjectContainer numChildren屬性中的更改?
- 14. 有沒有辦法監聽完成MovieClip播放?
- 15. 有沒有辦法監聽div溢出事件?
- 16. 有沒有辦法在win32上等待監聽套接字?
- 17. 有沒有辦法監聽未保存的文件更改?
- 18. 有沒有辦法在javascript中獲取所有事件監聽器綁定?
- 19. 有沒有辦法給jquery css方法添加變量?
- 20. 有沒有ScrollView滾動的監聽器?
- 21. 有沒有辦法爲特定防火牆添加事件偵聽器?
- 22. 添加事件監聽器到未來的項目(沒有jQuery)
- 23. 有沒有辦法在Python SMTPlib中添加多個接收器?
- 24. 有沒有辦法給matlab中的netcdf組添加一個屬性?
- 25. 有沒有辦法給SourceTree添加一個隱藏文件夾(帶。前綴)?
- 26. 有沒有辦法給接口添加一個默認的構造函數
- 27. 有沒有辦法給android中的ACTION_CALL意圖添加一個「名稱」?
- 28. 有沒有辦法「調整」事件監聽器被調用的順序?
- 29. 有沒有辦法添加輔助outerLayout?
- 30. 使用一個監聽器類來處理所有的監聽
否;這是Java中最愚蠢的部分之一。 – SLaks
您使用的是什麼GUI工具包? – Puce
@Puce:這與GUI無關。 – SLaks