제목의 질문과 거의 같습니다. 나는 WPF C# Windows 응용 프로그램을 가지고 있는데, 사용자를 위해 파일을 다운로드하고 속도를 표시하려고합니다.WebClient DownloadFileAsync - 사용자에게 다운로드 속도를 표시하려면 어떻게합니까?
4
A
답변
6
mWebClient.DownloadProgressChanged += (sender, e) => progressChanged(e.BytesReceived);
//...
DateTime lastUpdate;
long lastBytes = 0;
private void progressChanged(long bytes)
{
if (lastBytes == 0)
{
lastUpdate = DateTime.Now;
lastBytes = bytes;
return;
}
var now = DateTime.Now;
var timeSpan = now - lastUpdate;
var bytesChange = bytes - lastBytes;
var bytesPerSecond = bytesChange/timeSpan.Seconds;
lastBytes = bytes;
lastUpdate = now;
}
그리고 bytesPerSecond 변수로 필요한 모든 작업을 수행하십시오.
0
사용 DownloadProgressChanged event
WebClient client = new WebClient();
Uri uri = new Uri(address);
// Specify that the DownloadFileCallback method gets called
// when the download completes.
client.DownloadFileCompleted += new AsyncCompletedEventHandler (DownloadFileCallback2);
// Specify a progress notification handler.
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownloadProgressCallback);
client.DownloadFileAsync (uri, "serverdata.txt");
private static void DownloadProgressCallback(object sender, DownloadProgressChangedEventArgs e)
{
// Displays the operation identifier, and the transfer progress.
Console.WriteLine("{0} downloaded {1} of {2} bytes. {3} % complete...",
(string)e.UserState,
e.BytesReceived,
e.TotalBytesToReceive,
e.ProgressPercentage);
}
0
당신은 웹 클라이언트를 연결하면, 당신은 ProgressChanged 이벤트에 subsribe 수 있습니다, 예를 들어, 이 핸들러에 대한
_httpClient = new WebClient();
_httpClient.DownloadProgressChanged += DownloadProgressChanged;
_httpClient.DownloadFileCompleted += DownloadFileCompleted;
_httpClient.DownloadFileAsync(new Uri(_internalState.Uri), _downloadFile.FullName);
EventArgs입니다 당신에게 BytesReceieved 및 TotalBytesToReceive을 제공합니다. 이 정보를 사용하여 다운로드 속도를 결정하고 그에 따라 진행률 표시 줄을 촬영할 수 있어야합니다.
관련 문제
- 1. WebClient DownloadFileAsync File Exists
- 2. WebClient DownloadFileAsync 경로의 잘못된 문자
- 3. VB - 여러 다운로드에 DownloadFileASync (WebClient) 사용
- 4. Lazy WebClient 다운로드
- 5. C# WebClient FTP에서 파일 다운로드
- 6. 업로드/다운로드 속도를 줄입니다.
- 7. DownloadFileAsync 동안 Bluescreen 0x0000003B?
- 8. Microsoft (및 다른) 서버에서 심볼 파일의 다운로드 속도를 높이려면 어떻게합니까?
- 9. Javascript의 PDF에 대해 다운로드/열기 대화 상자를 표시하려면 어떻게합니까?
- 10. 글로벌 팀의 다운로드 다운로드 속도를 높이려면 어떻게해야합니까?
- 11. 일련의 버튼을 강조 표시하려면 어떻게합니까?
- 12. jLabel에 String을 표시하려면 어떻게합니까?
- 13. RadioButtonListPrint를 테이블에 표시하려면 어떻게합니까?
- 14. AlertDialog에 CalendarView를 표시하려면 어떻게합니까?
- 15. 마우스를 수직선으로 표시하려면 어떻게합니까?
- 16. 키보드를 계속 표시하려면 어떻게합니까?
- 17. Thor는 옵션을 표시하려면 어떻게합니까?
- 18. .NET WebClient 태그 속성 또는 다운로드 추적
- 19. WebClient - 디스크에 다운로드 한 파일 저장
- 20. WebClient 다운로드 - 잘못된 URL 검색 방법
- 21. WebClient - 파일이 다운로드 될 때까지 대기
- 22. LWP - Perl로 다운로드 속도를 설정하십시오.
- 23. 다운로드 속도를 어떻게 제한 할 수 있습니까?
- 24. MySQL 데이터베이스에서 데이터 페치 수를 표시하려면 어떻게합니까?
- 25. C# webclient async
- 26. Firefox 및 Explorer에서만 표시하려면 어떻게합니까?
- 27. 보조 모니터에 양식을 표시하려면 어떻게합니까?
- 28. iPhone의 가로보기에서 카메라를 표시하려면 어떻게합니까?
- 29. DataTables.net 열을 숨기거나 표시하려면 어떻게합니까?
- 30. asp.net에 오류 메시지를 표시하려면 어떻게합니까?
@nunespascal : 아직 아무 것도 해당 이벤트를 볼 수 없으며 시작 위치를 알 수 없습니다. – Drahcir