相关疑难解决方法(0)

我被异步/等待宠坏了!现在正在努力与明确的任务延续

编辑(接受后)

它可能不会立即显现,但@ 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

9
推荐指数
1
解决办法
2394
查看次数