Export (0) Print
Expand All

WebClient.DownloadProgressChanged Event

Occurs when an asynchronous download operation successfully transfers some or all of the data.

Namespace:  System.Net
Assembly:  System (in System.dll)

'Declaration
Public Event DownloadProgressChanged As DownloadProgressChangedEventHandler

This event is raised each time an asynchronous download makes progress. This event is raised when downloads are started using any of the following methods.

Method

Description

DownloadDataAsync

Downloads data from a resource and returns a Byte array, without blocking the calling thread.

DownloadFileAsync

Downloads data from a resource to a local file, without blocking the calling thread.

OpenReadAsync

Returns the data from a resource, without blocking the calling thread.

The DownloadProgressChangedEventHandler is the delegate for this event. The DownloadProgressChangedEventArgs class provides the event handler with event data.

For more information about handling events, see Consuming Events.

NoteNote

A passive FTP file transfer will always show a progress percentage of zero, since the server did not send the file size. To show progress, you can change the FTP connection to active by overriding the GetWebRequest virtual method:

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

The following code example demonstrates setting an event handler for this event.

		'  Sample call : DownLoadFileInBackground2 ("http:' www.contoso.com/logs/January.txt") 
		Public Shared Sub DownLoadFileInBackground2(ByVal address As String)

			Dim client As WebClient = New WebClient()

			'  Specify that the DownloadFileCallback method gets called 
			'  when the download completes. 
			AddHandler client.DownloadFileCompleted, AddressOf DownloadFileCallback2
			'  Specify a progress notification handler. 
			AddHandler client.DownloadProgressChanged, AddressOf DownloadProgressCallback
                        Dim uri as Uri = New Uri(address)
			client.DownloadFileAsync(uri, "serverdata.txt")
		End Sub

The following code example shows an implementation of a handler for this event.

Private Shared Sub UploadProgressCallback(ByVal sender As Object, ByVal e As UploadProgressChangedEventArgs)

    '  Displays the operation identifier, and the transfer progress.
    Console.WriteLine("{0}    uploaded {1} of {2} bytes. {3} % complete...", _
     CStr(e.UserState), e.BytesSent, e.TotalBytesToSend, e.ProgressPercentage)
End Sub 
Private Shared Sub DownloadProgressCallback(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs)

    '  Displays the operation identifier, and the transfer progress.
    Console.WriteLine("0}    downloaded 1} of 2} bytes. 3} % complete...", _
     CStr(e.UserState), e.BytesReceived, e.TotalBytesToReceive, e.ProgressPercentage)
End Sub

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft