WebClient.DownloadProgressChanged Event
Occurs when an asynchronous download operation successfully transfers some or all of the data.
Assembly: System (in System.dll)
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 |
|---|---|
Downloads data from a resource and returns a Byte array, without blocking the calling thread. | |
Downloads data from a resource to a local file, without blocking the calling thread. | |
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 NIB: Consuming Events.
Note |
|---|
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
Available since 2.0
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
