Пользовательский интерфейс заблокирован в приложении C # WPF во время асинхронной загрузки
У меня есть следующее основное приложение WPF, где я хочу, чтобы содержимое отображалось в текстовом поле. Однако, когда я нажимаю на кнопку, поток пользовательского интерфейса, кажется, блокируется. Я не уверен, что делаю неправильно, поскольку я взял этот код из файлов Excercise курса Pluralsight.
XAML и код:
<Window x:Class="AsyncFetch.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Button
x:Name="getButton"
HorizontalAlignment="Left"
Width="75"
Content="_Get Data"
Click="getButton_Click"
/>
<TextBox
x:Name="dataTextBox"
Margin="4"
Grid.Row="1"
/>
</Grid>
</Window>
Код:
namespace AsyncFetch
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private async void getButton_Click(object sender, RoutedEventArgs e)
{
WebClient w = new WebClient();
string txt = await w.DownloadStringTaskAsync("http://www.google.com");
dataTextBox.Text = txt;
}
}
}