我正在学习async/await关键字。我看不到我在这里写的语法上在做什么?
我有以下两种方法:
private async Task<string> PopupAsync()
{
String result;
using (StreamReader reader = File.OpenText(@"C:tempJBM_SchedulingModule.xap"))
{
Console.WriteLine("Opened file.");
txtData.Text = "Opened file.";
result = await reader.ReadToEndAsync();
}
return result;
}
和
private async void Button_Click(object sender, RoutedEventArgs e)
{
txtData.Text = await PopupAsync();
}
当我按下按钮时,主 UI 线程冻结,我不希望它冻结。试图了解为什么以及如何修复。
谢谢!
斯蒂芬是对的。我想通了。它确实按预期工作。它被阻止的原因不是因为 ReadToEndAsync(),而是将 4MB 字符串(从文件)填充 + 加载到 WPF 控件所花费的时间。