【发布时间】:2014-02-04 15:38:47
【问题描述】:
我知道在 .net 中,我可以在任务中做这样的事情,
task.ContinueWith((v) =>
{
Operation1();
})
.ContinueWith((V) =>
{
Operation2();
},
Cancel.Token, TaskContinuationOptions.None, Scheduler);
return task;
或者使用 Aysnc/Await 功能来一一进行操作。
如何在 Java 中做到这一点?
我看过AsyncTask的资料,但是doInBackground中的操作完成后,onPostExecute(Result)中的方法还是会被同步调用。
所以我的问题是如何一个一个地操作一系列不同的功能?
【问题讨论】:
-
您能用英文描述一下您要查找的代码应该做什么吗?
-
如果您正在寻找 lambda 函数,那么 java 还没有它。带有 lambda 的 Java 8 将于今年晚些时候发布。
-
他想知道如何链接多个异步任务,以便它们串行执行(但仍然异步 w.r.t. 调用者和彼此)。他的 C# 示例使用 .NET 任务的
ContinueWith方法来调用每个后续任务,作为前面任务完成(或失败)的延续。我使用自己的 .NET 的TaskAPI 实现在 Java 中执行此操作,所以很遗憾我无法提供基于 Java 核心 API 的解决方案。