|
问题代码:
xmal:一个按钮+一个显示框
- 1 <Button Width="100" Height="50" Margin="10" Click="Button_Click">test</Button>
- 2 <TextBox x:Name="display" Width="300" Height="300"></TextBox>
复制代码 cs:点击按钮,显示结果- async Task<int> getResult()
- {
- await Task.Delay(1000);
- return 10;
- }
- private void Button_Click(object sender, RoutedEventArgs e)
- {
- display.Text = "Starting to get Result..........\n";
- var t= getResult().Result;
- display.AppendText($"The result is:{t}\n");
- }
复制代码 Button_Click事件处理中获取异步方法getResult的结果, getResult只是简单等待1s后返回结果,却并没有如预期返回。
分析:
getResult中遇到await后,主线程返回等待结果,await处异步线程执行完之后,后面的任务仍交由主线程去处理(返回结果),而主线程在等待结果,造成死循环。
解决办法:
翻译
搜索
复制
来源:https://www.cnblogs.com/stephen2023/archive/2023/09/23/17725159.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|