Как добиться приостановки и возобновления загрузки с помощью webclient?
Я разрабатываю приложение для windows, которое загружает несколько файлов. Приложение должно обрабатывать\выполнять эти файлы в фоновом режиме после каждого загруженного файла. Поэтому я использовал фоновый рабочий для выполнения действия загрузки и выполнения загруженного файла. Загрузка и выполнение файлов работает нормально до тех пор, пока не будет установлено правильное сетевое соединение. Если есть какие-либо проблемы с подключением, то загрузка пропускается к следующему файлу.
Но я хочу приостановить загрузку на некоторое время (2,3 минуты) и возобновить ее после повторного подключения к сети. В то же время процесс выполнения файла должен выполняться в фоновом режиме.
Что я уже пробовал:
Используя webclient (ниже кода), я выполняю действие загрузки.
using (WebClient client) { try { client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged(applicationName)); client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted(fileSize, applicationName)); await AsyncPlatformExtensions.DownloadFileTaskAsync(client, new Uri(sourceUri), outputDir); } catch (WebException exe) { } }
Afzaal Ahmad Zeeshan
Есть ли у вас контроль как над сервером, так и над клиентским приложением?
Возможно, вы захотите узнать, как работают одноранговые сети. Прямые загрузки обычно происходят на сокет-соединении и сервере вероятно не сможет вспомнить, сколько он отправил клиенту в случае потери соединения. Пауза может быть возможна, если сервер и клиент поддерживают эту функцию.