//다운로드 속도 측정 변수
DateTime StartDt;
DateTime EndDt;
int _mdPrev = 0;
int _spTime = 0;
int _mdDown = 0;
//다운을 시작할 때 시간을 설정
StartDt = DateTime.Now;
_mdPrev = 0;
_mdDown = 0;
프로그레스바가 변경될 때 들어가는 코드
// 현재 받은 파일 양
_mdPrev = int.Parse(e.CurrentFileSize.ToString()) - _mdPrev;
// 누적된 받은 파일 양
_mdDown = _mdDown + _mdPrev;
// 현재 시간
EndDt = DateTime.Now;
// 지금까지 걸린 시간을 밀리초 단위로 계산하여 정수로 변경
int speedTime = (int)(EndDt - StartDt).TotalMilliseconds;
// 전체 받을 크기와 현재까지 받은 용량
//txt_TotalFileSize.Text = "용량 " + _mdDown + "/" + e.TotalFileSize;
// 지금까지 걸린 시간 표시
txt_TotalTime.Text = (EndDt - StartDt).Hours.ToString() + ":"
+ (EndDt - StartDt).Minutes.ToString() + ":"
+ (EndDt - StartDt).Seconds.ToString();
//+ (EndDt - StartDt).Seconds.ToString() + ":"
//+ (EndDt - StartDt).Milliseconds.ToString();
// 걸린 시간을 저장했다가 달라질 경우 표시한다.
if (speedTime > 1)
{// 1밀리초가 경과되었을 때
if (speedTime != _spTime)
{
txt_Speed.Text = (_mdDown / speedTime).ToString() + "kb/s"; // 단위가 byte 임.
long remandsecond = (e.TotalFileSize - _mdDown) / (_mdDown / speedTime); // milisecond
txt_RemandTime.Text = (((remandsecond / 1000) / 60) / 60) % 60 + ":"
+ ((remandsecond / 1000) / 60) % 60 + ":"
+ (remandsecond / 1000) % 60;
//+ (remandsecond / 1000) % 60 + ":"
//+ remandsecond % 1000; // 시:분:초:밀리초 형식임.
_spTime = speedTime;
}
}
_mdPrev = int.Parse(e.CurrentFileSize.ToString());
[출처] c# 파일 다운로드 속도 측정 code|작성자 gozipman
출처 : http://blog.naver.com/gozipman/60071580953
시리얼 통신 소스 코드 (0) | 2016.01.07 |
---|---|
Thread를 이용한 파일복사하기-프로그래스바 (0) | 2016.01.07 |
세가지 Timer 와 그 차이점 (0) | 2015.12.23 |
프로시저 Print 메세지 (0) | 2015.12.02 |
ASCII 파일 읽기 / 쓰기 (0) | 2015.09.02 |