У меня есть следующий код,
private void button1_Click(object sender, RoutedEventArgs e)
{
button1.IsEnabled = false;
var s = File.ReadAllLines("Words.txt").ToList(); // my WPF app hangs here
// do something with s
button1.IsEnabled = true;
}
Words.txt
имеет тонну слов, которые я читаю в переменной s, я пытаюсь использовать ключевые слова async
и await
в С# 5, используя Async CTP Library
, поэтому приложение WPF не зависает. Пока у меня есть следующий код,
private async void button1_Click(object sender, RoutedEventArgs e)
{
button1.IsEnabled = false;
Task<string[]> ws = Task.Factory.FromAsync<string[]>(
// What do i have here? there are so many overloads
); // is this the right way to do?
var s = await File.ReadAllLines("Words.txt").ToList(); // what more do i do here apart from having the await keyword?
// do something with s
button1.IsEnabled = true;
}
Цель состоит в том, чтобы прочитать файл в async, а не в синхронизации, чтобы избежать замораживания приложения WPF.
Любая помощь приветствуется, спасибо!