В моем проекте у меня есть раздел для загрузки файла. Я использую DownloadFileAsync()
метод для загрузки и добавить два обработчика событий:Как заблокировать главную тему при использовании DownloadFileAsync
DownloadProgressChanged
DownloadFileCompleted
Я хочу, когда использование DownloadFileAsync для загрузки файла, блок основного потока, потому что я не» t хотят, чтобы пользователи могли нажимать кнопку до завершения загрузки.
Часть моего кода:
WebClient webClient = new WebClient();
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChange);
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
Uri Url = new Uri(txtUrl.Text.Trim());
webClient.DownloadFileAsync(Url,FolderDialog.SelectedPath+System.IO.Path.GetFileName(txtUrl.Text));
Как я могу это сделать? Я искал в Интернете, но я не нашел полезного результата. спасибо
Блокировка всего пользовательского интерфейса, чтобы отключить определенную кнопку, кажется ... тяжелой рукой. – spender
... и на самом деле это не то, что вам следует делать с учетом UX. Просто отключите кнопку, поэтому пользователь знает, что он не может ее щелкнуть. Кроме того, нет смысла извлекать ваши данные асинхронно, если вы блокируете поток, ожидая его завершения. Синхронизация синхронно приведет к почти одному и тому же. – Padarom