我的代码如下所示:
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并执行括号内的代码。我只是假设
答案 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();