DownloadFileAsync下载0KB文件

时间:2017-07-30 17:17:53

标签: .net .net-3.5 console-application

我的代码如下所示:

    private static WebClient wc = new WebClient;
...
wc.DownloadFileAsync(URL, FilePath);
wc.DownloadProgressChanged += (s, ev) =>
{
    //Do stuff
};
wc.DownloadFileCompleted += (s, ev) =>
{
    //All the rest of the code
};

然而,只要执行DownloadFileAsync,程序就立即关闭,留下0KB文件而不是下载的文件(不会发生错误)。 我相信它只是完全忽略了DownloadProgressChanged并执行括号内的代码。我只是假设

1 个答案:

答案 0 :(得分:0)

正如Scott Chamberlain所说,你的程序似乎在DownloadFileCompleted被调用之前结束。如果这个假设是正确的,那么在主线程中等待,直到那时为止:

var completed = new AutoResetEvent(false);
wc.DownloadFileAsync(URL, FilePath);
wc.DownloadProgressChanged += (s, ev) =>
{
    //Do stuff
};
wc.DownloadFileCompleted += (s, ev) =>
{
    //All the rest of the code
    completed.Set();
};
completed.WaitOne();