Я создал этот метод, чтобы создать Observable
от событий. Я пытаюсь загрузить файл и обновлять индикатор:отменить загрузку с использованием реактивного наблюдаемого
private void BuildObservables(WebClient webClient)
{
Observable.FromEventPattern<AsyncCompletedEventHandler, AsyncCompletedEventArgs>(h => webClient.DownloadFileCompleted += h, h => webClient.DownloadFileCompleted -= h)
.Select(ep => ep.EventArgs)
.Subscribe(
a =>
{
this.WizardViewModel.PageCompleted()
},
);
Observable.FromEventPattern<DownloadProgressChangedEventHandler, DownloadProgressChangedEventArgs>(h => webClient.DownloadProgressChanged += h, h => webClient.DownloadProgressChanged -= h)
.Select(ep => ep.EventArgs)
.Subscribe(
a =>
{
this.progressEdit.Position = a.ProgressPercentage;
progressEdit.Update();
}
);
}
Однако, когда я скачиваю запущен Я хотел бы, чтобы обеспечить кнопку пользователя, чтобы отменить процесс загрузки.
Как я могу добавить это аннулирование на основе этого кода?
Итак, насколько я смог понять вы предлагаете мне выполнить сначала: 'webClient.CancelAsync()', а затем удалять наблюдаемые с помощью 'disposable.Dispose()', не так ли? – Jordi