Прочитать на английском

Поделиться через


WebClient.DownloadProgressChanged Событие

Определение

Происходит, когда асинхронная операция скачивания успешно передает некоторые или все данные.

public event System.Net.DownloadProgressChangedEventHandler? DownloadProgressChanged;
public event System.Net.DownloadProgressChangedEventHandler DownloadProgressChanged;

Тип события

Примеры

В следующем примере кода показано задание обработчика событий для события DownloadProgressChanged.

// Sample call : DownLoadFileInBackground4 ("http://www.contoso.com/logs/January.txt");
public static void DownLoadFileInBackground4(string address)
{
    WebClient client = new WebClient();
    Uri uri = new Uri(address);

    // Specify a DownloadFileCompleted handler here...

    // Specify a progress notification handler.
    client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownloadProgressCallback4);

    client.DownloadFileAsync(uri, "serverdata.txt");
}

private static void DownloadProgressCallback4(object sender, DownloadProgressChangedEventArgs e)
{
    // Displays the operation identifier, and the transfer progress.
    Console.WriteLine("{0}    downloaded {1} of {2} bytes. {3} % complete...",
        (string)e.UserState,
        e.BytesReceived,
        e.TotalBytesToReceive,
        e.ProgressPercentage);
}

Комментарии

Внимание!

WebRequest, HttpWebRequest, ServicePointи WebClient устарели, и их не следует использовать для новой разработки. Вместо этого используйте HttpClient.

Это событие возникает каждый раз, когда асинхронная загрузка выполняется. Это событие возникает при запуске загрузки с помощью любого из следующих методов.

Метод Описание
DownloadDataAsync Загружает данные из ресурса и возвращает массив Byte, не блокируя вызывающий поток.
DownloadFileAsync Загружает данные из ресурса в локальный файл, не блокируя вызывающий поток.
OpenReadAsync Возвращает данные из ресурса, не блокируя вызывающий поток.

DownloadProgressChangedEventHandler является делегатом для этого события. Класс DownloadProgressChangedEventArgs предоставляет обработчик событий данными о событиях.

Дополнительные сведения об обработке событий см. в обработке и вызове событий.

Примечание

Пассивный передачи FTP-файлов всегда будет отображать процент хода выполнения в нуле, так как сервер не отправил размер файла. Чтобы показать ход выполнения, можно изменить ftp-подключение на активное, переопределив виртуальный метод GetWebRequest(Uri):

internal class MyWebClient : WebClientProtocol
{
    protected override WebRequest GetWebRequest(Uri address)
    {
        FtpWebRequest req = (FtpWebRequest)base.GetWebRequest(address);
        req.UsePassive = false;
        return req;
    }
}

Применяется к

Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1