WebClient.DownloadProgressChanged Event
Assembly: System (in system.dll)
'Declaration Public Event DownloadProgressChanged As DownloadProgressChangedEventHandler 'Usage Dim instance As WebClient Dim handler As DownloadProgressChangedEventHandler AddHandler instance.DownloadProgressChanged, handler
/** @event */ public void add_DownloadProgressChanged (DownloadProgressChangedEventHandler value) /** @event */ public void remove_DownloadProgressChanged (DownloadProgressChangedEventHandler value)
In JScript, you can handle the events defined by a class, but you cannot define your own.
Not applicable.
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 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
Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.
Note: