2
在Visual Studio中使用C#编写一些编程,我试图下载文件并将进度链接到ProgressBar
。当我在Visual Basic中完成时它工作得很好,但当我尝试在C#中完成时,Client.DownloadProgressChanged
事件不会触发。WebClient.DownloadProgressChanged不会触发
System.Net.WebClient Client = new System.Net.WebClient();
Client.DownloadProgressChanged += Client_DownloadProgressChanged;
Client.DownloadFileAsync(new Uri(url), filepath + filename);
while (Client.IsBusy) { }
在Client_DownloadProgressChanged
的唯一事情是一些代码,改变TextBox
为“Test1的”我做到了只是为了看看它运行的价值。
此代码在什么情况下运行?如果它在UI线程上,'while(Client.IsBusy)'将被阻塞。 – wgraham 2015-02-11 20:29:17
我不知道如何做与线程有关的任何事情,所以在我的代码中没有提及它。无论默认情况下是使用什么线程。 – Aurionin 2015-02-11 20:32:12
@wgraham DownloadFileAsync将在线程池中的线程上运行,而不是在UI线程上运行,所以没关系。 DownloadFileAsync还打印[网络跟踪信息](https://msdn.microsoft.com/en-us/library/hyb3xww8(v = vs.110).aspx)信息,以便您可以查看以查看发生了什么背景。 – JNYRanger 2015-02-11 21:26:37