Веб-клиент имеет довольно странный метод DownloadFileAsync.Возвращаемый тип void, поэтому он не является ожидаемым.Кроме того, это означает, что мы даже не получаем задачу, поэтому ContinueWith невозможен.Это оставляет нас с использованием события DownloadFileCompleted.
const string FileName = "lastupdate.txt";
private void DownloadLastUpdate() {
var client = new WebClient();
client.DownloadFileCompleted += ( s, e ) => {
this.UpdateTextBox( e.Error );
client.Dispose();
};
client.DownloadFileAsync( new Uri( Settings.Default.patchCheck ), FileName );
}
Я пошел с необязательным параметром исключения для ретрансляции любых сообщений об исключениях.Не стесняйтесь рефакторинг по желанию.File.ReadLines выводит текст построчно, поэтому большие файлы не должны занимать слишком много памяти.
private void UpdateTextBox( Exception exception = null ) {
textBox1.Text = string.Empty;
if ( exception != null ) {
textBox1.Text = exception.Message;
return;
}
if ( !File.Exists( FileName ) ) {
textBox1.Text = string.Format( "File '{0}' does not exist.", FileName );
return;
}
var lines = File.ReadLines( FileName );
textBox1.Text = string.Join( Environment.NewLine, lines );
}