Leer en inglés

Compartir a través de


WebClient.DownloadProgressChanged Evento

Definición

Se produce cuando una operación de descarga asincrónica transfiere correctamente algunos o todos los datos.

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

Tipo de evento

Ejemplos

En el ejemplo de código siguiente se muestra cómo establecer un controlador de eventos para el evento DownloadProgressChanged.

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

Comentarios

Precaución

WebRequest, HttpWebRequest, ServicePointy WebClient están obsoletos y no debe usarlos para el nuevo desarrollo. Use HttpClient en su lugar.

Este evento se genera cada vez que una descarga asincrónica realiza el progreso. Este evento se genera cuando se inician descargas mediante cualquiera de los métodos siguientes.

Método Descripción
DownloadDataAsync Descarga datos de un recurso y devuelve una matriz de Byte, sin bloquear el subproceso que realiza la llamada.
DownloadFileAsync Descarga datos de un recurso a un archivo local, sin bloquear el subproceso que llama.
OpenReadAsync Devuelve los datos de un recurso, sin bloquear el subproceso que realiza la llamada.

El DownloadProgressChangedEventHandler es el delegado de este evento. La clase DownloadProgressChangedEventArgs proporciona al controlador de eventos datos de eventos.

Para obtener más información sobre cómo controlar eventos, vea Control y generación de eventos.

Nota

Una transferencia de archivos FTP pasiva siempre mostrará un porcentaje de progreso de cero, ya que el servidor no envió el tamaño del archivo. Para mostrar el progreso, puede cambiar la conexión FTP a activa reemplazando el método virtual GetWebRequest(Uri):

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

Se aplica a

Producto Versiones
.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