首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Async-Await表达式返回错误结果

Async-Await表达式返回错误结果
EN

Stack Overflow用户
提问于 2011-12-12 17:46:34
回答 1查看 314关注 0票数 3

我有一个异步等待表达式的问题,它返回错误的结果。

代码语言:javascript
复制
private Task<int> A
{
    get
    {
        return TaskEx.RunEx<int>(async () =>
        {
            Thread.Sleep(10000);
            return 2;
        });
    }
}

private Task<int> B
{
    get
    {
        return TaskEx.RunEx<int>(async () =>
        {
            Thread.Sleep(4000);
            return 4;
        });
    }
}

private string SumAll(int a, int b)
{
    return (a + b).ToString();
}

现在,当我想通过启动SumAll方法来对属性A和B求和时,我得到了结果4,而我应该得到了6。下面你可以找到一个不起作用的代码。

代码语言:javascript
复制
private async void Sum_Click(object sender, RoutedEventArgs e)
{
    this.Result.Text = this.SumAll(await A, await B);
}

当我用下面的方法做同样的例子时,我得到了正确的结果。

代码语言:javascript
复制
private async void Sum_Click(object sender, RoutedEventArgs e)
{
    var a = await A;
    var b = await B;
    this.Result.Text = this.SumAll(a, b);
}

顺便说一句。我知道最好的方法是使用WhenAll方法,但我正在学习。感谢您的回答

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-12 17:49:44

是的,这是一个已知的错误与CTP (my blogLucian Wischik's blog)。它将在完整版本中修复。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8472436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档