서버에서 웹 클라이언트가있는 파일을 다운로드하려고합니다. 이것은 매우 효과적입니다. 그러나 진행률 표시 줄에 다운로드 진행률을 표시하려고 시도 할 때 진행률이 향상되지 않습니다.웹 클라이언트 진행률이 진행률 표시 줄에 나타나지 않습니다.
DownloadFileAsync -method와 함께 파일을 다운로드하려고합니다. 성능 문제를 방지하거나 정지시키기 위해 자체 스레드를 모두 가지고 있습니다.
private WebClient updateDownloader = new WebClient();
이것은 Form.Shown - 이벤트의 해당과 같습니다 :
updateDownloader.DownloadFileAsync(new Uri(UriGoesHere), PathToSave);
그것은 시도 블록에
나는 어떤 잠수함 또는 이벤트 외부 웹 클라이언트를 선언했다. 는 내가 진행 막대에 진행 상황을 보여주기 위해 그런 서브를 만든 : 이updateDownloader.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
이에서 작동합니다 : 나는 이벤트 핸들러를 만든 폼로드 - 이벤트에서
private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
이론이지만, 나는 이미 MSDN을 방문하여 일부 방법 만 작동한다는 정보를 보았지만이를 구현하는 것이 도움이되지 못했습니다.
결코 도달 할 수 없습니다. 내가 도대체 뭘 잘못하고있는 겁니까? 더 많은 코드 부분이 필요하면 알려주세요.
이 [답변] 읽기 (http://stackoverflow.com/questions/9459225/asynchronous-file-download-with- 진행 표시 줄). 이 좋은 표본. –
Mr.kto 불행히도 이것은 도움이되지 않았습니다.이 스레드의 op에는 방금 동결에 문제가 있었기 때문에 도움이되지 않았습니다. 그러나 그는이를 고쳐서 진행 상황을 볼 수있었습니다. 제 생각에는 코드가 거의 같지만 오류를 찾을 수 없습니다. 내 생각에, 나는 이제 막 완전히 혼수 상태에 빠졌습니다. 왜냐하면 저는 한 시간이 지난 지금 그것을 다루고 있기 때문입니다. –
파일 크기는 무엇입니까? 너무 큽니까? 또는 느린 연결이 있습니까? 이것을 시도해 볼 수 있습니까? label1.Text = e.BytesReceived.ToString(); ProgressChanged 이벤트에서 결과를 얻었는지 확인하십시오! –