Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
5 / 5 / 5
Регистрация: 16.06.2013
Сообщений: 40
1

DownloadFileAsync, классы и вывод состояний

16.06.2013, 05:51. Показов 600. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Разбираюсь с DownloadFileAsync, для работы с ним сделал класс-обертку. Не знаю, как вывести за пределы класса состояния e.BytesReceived и e.TotalBytesToReceive. По аналогии как с ПрогрессБаром не получается. Хотелось бы, что бы как и с pBar обновлялось и отображалось, сколько байт уже закачано.
В класс оборачиваю для того, чтобы в дальнейшем закачивать группу файлов.

Код
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;

namespace Downloader
{
    public partial class Form1 : Form
    {
        AsyncDown d;
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            d = new AsyncDown(progressBar1, "http://ссылка", @"сохранение");   
        }
    }       

    public class AsyncDown
    {
        private WebClient webClient;
        private ProgressBar progressBar;      
        private long state;
        private long total;
        public AsyncDown( string url, string path)
        {
            webClient = new WebClient();
            StartDownload(url, path);
        }
        public AsyncDown(ProgressBar pBar, string url, string path)
        {
            webClient = new WebClient();
            progressBar = pBar;
            StartDownload(url, path);
        }
        
        public void StartDownload(string url, string path)
        {
            webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
            webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
            webClient.DownloadFileAsync(new Uri(url), path);
        }
        public void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
        {
            progressBar.Value = e.ProgressPercentage;     
            state = e.BytesReceived;
            total = e.TotalBytesToReceive; 
        }
        private void Completed(object sender, AsyncCompletedEventArgs e)
        {
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2013, 05:51
Ответы с готовыми решениями:

DownloadFileAsync завершает цикл
Не могу понять в чем дело. Если запускать не пошагово, то ,после i = (max_count_wallpapers = 1347)...

WebClient.DownloadFileAsync / Требуется ссылка на объект
При отладке выдаёт ошибку : Для нестатического поля, метода или свойства...

WebClient.DownloadFileAsync() - скачивание по непрямой ссылке
Привет всем, помогите решить проблему. Использую webClient.DownloadFileAsync для скачивания файлов....

Прерывание соединения при загрузке DownloadFileAsync
Качаю файл с удаленного сервера при помощи DownloadFileAsync. Если во время загрузки допустим...

1
5 / 5 / 5
Регистрация: 16.06.2013
Сообщений: 40
17.09.2013, 06:34  [ТС] 2
Нашел для себя решение - через Invoke обращаюсь напрямую к месту, где нужно обновить данные. Возня с дополнительным классом оказалась избыточной.

Вопрос решен.
0
17.09.2013, 06:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.09.2013, 06:34
Помогаю со студенческими работами здесь

Дозакачка файла, если не докачался WebClient, DownloadFileAsync
Здравствуйте! Проблема в том, что при скачивании файла modpack.zip, он у меня скачивается не...

Асинхронная загрузка файлов методом WebClient.DownloadFileAsync
Вопрос адресуется в первую очередь профессионалам. При разработке приложения возникла...

DownloadFileAsync: как определить, какой файл сейчас скачивается
Всем доброго времени суток! У меня есть несколько файлов, которые я хочу скачать все они...

WebClient.DownloadFileAsync()
Не определяется размер файла, а, соответственно, и процент загрузки. Вроде по гайду переписал метод...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru