编辑(接受后)
它可能不会立即显现,但@ Servy的答案是正确的,无需Unwrap在monodroid下定制实现- 在我的评论中我说它不存在,但它确实存在.
结束编辑
我正在编写一堆使用我们的RESTful Web服务的应用程序,尽管我认为我知道如何正确使用任务但事实并非如此.方案是我已经为Windows Store实现了代码 - 使用async/await并且我需要为MonoDroid实现几乎相同的东西 - 没有那个(没有我不想使用的一些构建黑客).
我已经将这个问题的问题归结为一组简单的异步获取整数的任务,然后,在继续中,触发另一个异步任务,转换从该整数构建的字符串.在C#5中,这将是:
注意 - 当然我在Task.FromResult<T>这里用来代替实际的异步代码
private async Task<string> GetStringAsync()
{
return await GetStringFromIntAsync(await GetIntAsync());
}
private async Task<int> GetIntAsync()
{
return await Task.FromResult(10);
}
private async Task<string> GetStringFromIntAsync(int value)
{
return await Task.FromResult(value.ToString());
}
Run Code Online (Sandbox Code Playgroud)
要将此转换为基于延续的模式,我试过这个:
private Task<string> GetStringAsync()
{
//error on this line
return GetIntAsync().ContinueWith(t => GetStringFromIntAsync(t.Result));
}
private Task<int> GetIntAsync()
{
return Task.FromResult(10);
}
private Task<string> GetStringFromIntAsync(int value)
{
return Task.FromResult(value.ToString());
} …Run Code Online (Sandbox Code Playgroud) c# multithreading task-parallel-library xamarin.android async-await