상세 컨텐츠

본문 제목

c# 파일 다운로드 속도 측정 code [출처] c# 파일 다운로드 속도 측정 code|작성자 gozipman

C#

by 탑~! 2015. 12. 31. 12:23

본문

//다운로드 속도 측정 변수
        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());



출처 : http://blog.naver.com/gozipman/60071580953

'C#' 카테고리의 다른 글

시리얼 통신 소스 코드  (0) 2016.01.07
Thread를 이용한 파일복사하기-프로그래스바  (0) 2016.01.07
세가지 Timer 와 그 차이점  (0) 2015.12.23
프로시저 Print 메세지  (0) 2015.12.02
ASCII 파일 읽기 / 쓰기  (0) 2015.09.02

관련글 더보기