2013-05-28 35 views

回答

2

你可以有你@Async方法返回一個Future,通過它可以得到的返回值:

@Async 
public Future<Something> findSomethingAsync(final int id) 
{ 
    Something s = ... 
    return new AsyncResult<Something>(s); 
} 

一旦異步方法已經完成,FutureisDone()方法是正確的,你可以future.get()的結果。

乾杯,

+0

好的,我知道之前,但我如何檢查isDone()的值?我必須實現一個循環,它會定期檢查它嗎?或者是否有任何種類的事件,在完成該功能後拋出? –

+0

'future.get()'將會阻塞,直到有結果可用,所以你不需要輪詢... –

+0

它不會錯過目標,調用異步函數並等待其完成或阻止應用程序?我將嘗試實施基於事件的自定義解決方案。 –