C#网络客户端文件下载
我正在编写一个下载客户端,它第一次就可以完美地工作。但是在第二次运行时,bw_DownloadProgressChanged e.BytesReceived似乎在继续计数,因此它包括第一次下载和第二次下载的字节,而不是重置?我应该如何开始新的下载?我是否需要执行一些检查并将当前下载传递给DownloadDataCompletedEventHandler?下面是我的简化代码。这些下载不会同时进行,但第二次下载会等待第一次下载完成C#网络客户端文件下载,c#,multithreading,download,C#,Multithreading,Download,我正在编写一个下载客户端,它第一次就可以完美地工作。但是在第二次运行时,bw_DownloadProgressChanged e.BytesReceived似乎在继续计数,因此它包括第一次下载和第二次下载的字节,而不是重置?我应该如何开始新的下载?我是否需要执行一些检查并将当前下载传递给DownloadDataCompletedEventHandler?下面是我的简化代码。这些下载不会同时进行,但第二次下载会等待第一次下载完成 WebClient myWebClient = new WebCli
WebClient myWebClient = new WebClient();
try
{
myWebClient.DownloadDataCompleted += new DownloadDataCompletedEventHandler(bw_DownloadDataCompleted);
myWebClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(bw_DownloadProgressChanged);
Uri uri = new Uri(podcastTrack.PodcastDownloadAddress);
myWebClient.DownloadFileAsync(uri, podcastTrack.PodcastTempLocation);
}
catch (Exception exce)
{
Console.Write("Error downlaoding page: \n\n" + exce.Message);
}
private void bw_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
Console.WriteLine("{0} downloaded {1} of {2} bytes. {3} % complete...",
(string)e.UserState,
e.BytesReceived,
e.TotalBytesToReceive,
e.ProgressPercentage);
}
谢谢。如果您有任何帮助,我们将不胜感激。您不应该在调用DownloadFileAsync()后立即处理()您的Webclient。您是对的。我把它加进去,看看它是否解决了我的问题,但可惜没有,我忘了再把它拿出来。实际上似乎没有什么区别。