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