Question about threading and download of files.

Discussion in 'Visual Basic .Net' started by DN Admin, Apr 27, 2012.

  1. DN Admin

    Staff Member

    Joined:
    Aug 7, 2010
    Location:
    Joliet, IL U.S.A.
    I have a loop set up that iterates through a List of video object and downloads them one by one. The problem is, that because of varying file sizes, I need my outter loop to wait until a file is downloaded. What would be the most efficient way to do this?
    I am using System.Net.Webclient
    As of right now the downloading works somewhat, I get about 24-27 of 94 files. The download method I am using is synchronous btw.
    Now I did throw in a 2 minute sleep method on the main thread and it got all 94 files, but that just doesn't feel right hehehehe :p
    I am thinking I could use Asynchronous download from System.Net.Webclient and the Downloaded event to inform myself that the file is completed and I can move onto the next file in the video_list.Entries, but I honestly am not sure how to go about that.
    Thank you for your help!

    <pre class="prettyprint lang-vb For Each _video As Video In video_list.Entries
    Dim paramVideo As Video = _video
    viItem = New VideoInfo
    count = count + 1

    Dim VideoTitle As String = count.ToString() + ": " + _video.Title.ToString()

    viItem.IndexCount = count.ToString()
    viItem.Title = _video.Title.ToString()
    viItem.URL = _video.WatchPage.AbsoluteUri.ToString()
    _List.Add(viItem)


    t2 = New Thread(Sub() Me.download(paramVideo, yourequest, count))
    t2.Start()
    'Need to wait here until t2 is finished downloading then end the thread.
    Next</pre>
    <br/>

    View the full article
     
    #1

Share This Page