gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 16:26:49 25 4
gpt4 key购买 nike

<分区>

我遇到返回错误结果的 async-await 表达式的问题。

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。您可以在下面找到不起作用的代码。

private async void Sum_Click(object sender, RoutedEventArgs e)
{
this.Result.Text = this.SumAll(await A, await B);
}

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

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 方法,但我正在学习。谢谢你的回答

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com