C#网络客户端文件下载

C#网络客户端文件下载,c#,multithreading,download,C#,Multithreading,Download,我正在编写一个下载客户端,它第一次就可以完美地工作。但是在第二次运行时,bw_DownloadProgressChanged e.BytesReceived似乎在继续计数,因此它包括第一次下载和第二次下载的字节,而不是重置?我应该如何开始新的下载?我是否需要执行一些检查并将当前下载传递给DownloadDataCompletedEventHandler?下面是我的简化代码。这些下载不会同时进行,但第二次下载会等待第一次下载完成 WebClient myWebClient = new WebCli

我正在编写一个下载客户端,它第一次就可以完美地工作。但是在第二次运行时,bw_DownloadProgressChanged e.BytesReceived似乎在继续计数,因此它包括第一次下载和第二次下载的字节,而不是重置?我应该如何开始新的下载?我是否需要执行一些检查并将当前下载传递给DownloadDataCompletedEventHandler?下面是我的简化代码。这些下载不会同时进行,但第二次下载会等待第一次下载完成

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。您是对的。我把它加进去,看看它是否解决了我的问题,但可惜没有,我忘了再把它拿出来。实际上似乎没有什么区别。