none
동시에 3개 이상의 파일 다운로드를 하는 방법은 없나요? RRS feed

  • 질문

  • 안녕하세요. 반갑습니다.

    지금 이미지 다운로드 프로그램을 작성중입니다.

    비동기 방식으로 동시에 수십개의 이미지 파일을 다운로드 하는 방식인데,

    제 상식으로는 모든 다운로드가 동시에 시작해야 하는데

    실제로 동작할때는 2개만 동시에 다운로드가 되고 그중 하나가 끝나면 또 하나가 시작하고..

    이런식으로 순차적으로 다운로드가 됩니다

     

    WebClient의 DownloadFileAsync로 구현했습니다. 정확히 말하자면 동시에는 아니겠죠..

    webclient clt = new webclient();

    clt.DownloadFileAsync(new Uri(IMGTxt), "a.jpg");

     

    webclient clt2 = new webclient();

    clt2.DownloadFileAsync(new Uri(IMGTxt), "b.jpg");

     

    webclient clt3 = new webclient();

    clt3.DownloadFileAsync(new Uri(IMGTxt), "c.jpg");

     

    webclient clt4 = new webclient();

    clt4.DownloadFileAsync(new Uri(IMGTxt), "d.jpg");

    이런 식이라서요. 다운로드가 시작되는건 a,b,c,d 순이지만 이미지 파일의 용량이 충분히 크면 a,b의 완료 여부에 관계 없이 a,b,c,d 전부 다운로드가 되고 있어야 합니다.

     

    그런데 실제로 저런식으로 구현하면 a,b가 먼저 다운로드 되고 있고, 만약 b가 a보다 먼저 완료되면 그때서야 c의 다운로드가 시작합니다.

     

    시험삼아 다운로드만 해주는 프로그램을 하나 짜서 그 프로세스에서 다운로드 하게 하니 (4개의 프로세스를 동시에 띄우니)

    의도한대로 4개가 동시에 다운로드 되고 있었습니다. 

     

    WebClient 말고 다른 클래스를 사용하면 이런 현상을 피할 수 있는지 궁금합니다.



    • 편집됨 KimJin2 2012년 1월 29일 일요일 오후 12:34 코드 수정
    2012년 1월 29일 일요일 오전 10:32

답변

  • 해결했습니다.

    app.config에 이걸 추가해주니 됩니다.

      <system.net>
        <!-- skip... -->
        <connectionManagement>
          <add address="*" maxconnection="100" />
        </connectionManagement>
      </system.net>

    기본적으로 maxconnection값은 2라고 하네요.. 그래서 2개만 된듯 합니다.

    http://msdn.microsoft.com/ko-kr/library/1tkaca2y.aspx 여기 참조해주세요..

     

    • 답변으로 표시됨 KimJin2 2012년 1월 29일 일요일 오후 2:11
    2012년 1월 29일 일요일 오후 2:10

모든 응답

  • 해결했습니다.

    app.config에 이걸 추가해주니 됩니다.

      <system.net>
        <!-- skip... -->
        <connectionManagement>
          <add address="*" maxconnection="100" />
        </connectionManagement>
      </system.net>

    기본적으로 maxconnection값은 2라고 하네요.. 그래서 2개만 된듯 합니다.

    http://msdn.microsoft.com/ko-kr/library/1tkaca2y.aspx 여기 참조해주세요..

     

    • 답변으로 표시됨 KimJin2 2012년 1월 29일 일요일 오후 2:11
    2012년 1월 29일 일요일 오후 2:10
  • 안녕하십니까? KimJin2

    Microsoft MSDN Forum 사이트를 방문해 주셔서 감사합니다. 

     

    고객님의 문의 내용이 해결 되어서 다행입니다.

    차후에도 문의 사항 있으시면 언제든지 저희 Forum 를 이용해 주시길 바랍니다.

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    2012년 1월 30일 월요일 오전 12:31
    중재자