Member 11201189 Ответов: 0

Как добиться приостановки и возобновления загрузки с помощью 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

Есть ли у вас контроль как над сервером, так и над клиентским приложением?

Возможно, вы захотите узнать, как работают одноранговые сети. Прямые загрузки обычно происходят на сокет-соединении и сервере вероятно не сможет вспомнить, сколько он отправил клиенту в случае потери соединения. Пауза может быть возможна, если сервер и клиент поддерживают эту функцию.

0 Ответов