我有一个方法doAsync
,它使我返回了未来。
我想在将来开始使用此方法,所以我正在使用ScheduledExecutorService
。
我希望有一个Future
在runAsync()
方法完成运行后完成。
基本上,我的代码如下:
public Future scheduleAsyncTask(int delay){
return this.scheduledExecutorService.schedule(()->runAsync(),delay,TimeUnit.MILLISECONDS);
}
这不能正常工作,因为将来的返回将在计划任务开始运行时完成,而不是在完成任务时完成。
我该如何解决我的问题?
答案 0 :(得分:0)
return scheduler.schedule(() -> runAsync().get(delay, TimeUnit.MILLISECONDS), delay, TimeUnit.MILLISECONDS);