WebClient.DownloadProgressChanged Událost

Definice

Nastane, když asynchronní operace stahování úspěšně přenese některá nebo všechna data.

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

Event Type

Příklady

Následující příklad kódu ukazuje nastavení obslužné rutiny události pro DownloadProgressChanged událostí.

// 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);
}

Poznámky

Upozornění

WebRequest, HttpWebRequest, ServicePointa WebClient jsou zastaralé a neměli byste je používat pro nový vývoj. Místo toho použijte HttpClient.

Tato událost se vyvolá při každém asynchronním stahování průběhu. Tato událost se vyvolá, když se stahování spustí pomocí některé z následujících metod.

Metoda Popis
DownloadDataAsync Stáhne data z prostředku a vrátí pole Byte bez blokování volajícího vlákna.
DownloadFileAsync Stáhne data z prostředku do místního souboru bez blokování volajícího vlákna.
OpenReadAsync Vrátí data z prostředku bez blokování volajícího vlákna.

DownloadProgressChangedEventHandler je delegátem této události. Třída DownloadProgressChangedEventArgs poskytuje obslužnou rutinu události s daty události.

Další informace o zpracování událostí naleznete v tématu zpracování a vyvolávání událostí.

Poznámka

Pasivní přenos souborů FTP vždy zobrazí procento průběhu nuly, protože server neodeslal velikost souboru. Pokud chcete zobrazit průběh, můžete změnit připojení FTP na aktivní přepsáním GetWebRequest(Uri) virtuální metody:

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

Platí pro

Produkt Verze
.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