vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: 10 Threads gleichzeitig - Aber wie? 
Autor: Maas
Datum: 28.02.11 16:05

Du brauchst im Prinzip einen Download Manager.
Class MainWindow 
 
    Private WithEvents mDlManager As New DownloadManager
 
    Public Sub New()
        InitializeComponent()
        mDlManager.Urls.Add("http://...", "c:/...")
        '...
    End Sub
 
    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
      Handles Button1.Click
        mDlManager.Start()
    End Sub
 
    Private Sub mDlManager_Completed(ByVal sender As Object, ByVal e As _
      DownloadManagerEventArgs) Handles mDlManager.DownloadCompleted
        Debug.WriteLine("Completed: " & e.Data.Key)
    End Sub
 
End Class
 
Public Class DownloadManager
 
    Public Event DownloadCompleted(ByVal sender As Object, ByVal e As _
      DownloadManagerEventArgs)
 
    Public Property Urls As Dictionary(Of String, String)
    Public Property MaximumParallelDownloads As Integer
 
    Public Sub New()
        Me.Urls = New Dictionary(Of String, String)
        Me.MaximumParallelDownloads = 10
    End Sub
 
    Public Sub Start()
        If Me.Urls.Count > 0 Then
            For i As Integer = 0 To Math.Min(Me.Urls.Count, _
              Me.MaximumParallelDownloads) - 1
                Me.StartDownloadFile(Me.Urls.Keys(i), Me.Urls(Me.Urls.Keys(i)))
            Next
        End If
    End Sub
 
    Private Sub StartDownloadFile(ByVal url As String, ByVal path As String)
        If Me.Urls.ContainsKey(url) Then Me.Urls.Remove(url)
        Dim wc As New Net.WebClient
        AddHandler wc.DownloadFileCompleted, AddressOf Me.DownloadFile_Completed
        wc.DownloadFileAsync(New Uri(url), path, New KeyValuePair(Of String, _
          String)(url, path))
    End Sub
 
    Private Sub DownloadFile_Completed(ByVal sender As Object, ByVal e As _
      ComponentModel.AsyncCompletedEventArgs)
        Dim wc = CType(sender, Net.WebClient)
        RemoveHandler wc.DownloadFileCompleted, AddressOf _
          Me.DownloadFile_Completed
        Dim args = CType(e.UserState, KeyValuePair(Of String, String))
        RaiseEvent DownloadCompleted(Me, New DownloadManagerEventArgs(args))
        If Me.Urls.Count > 0 Then
            Me.StartDownloadFile(Me.Urls.Keys(0), Me.Urls(Me.Urls.Keys(0)))
        End If
    End Sub
 
End Class
 
Public Class DownloadManagerEventArgs
    Inherits EventArgs
    Private mData As KeyValuePair(Of String, String)
    Public ReadOnly Property Data As KeyValuePair(Of String, String)
        Get
            Return mData
        End Get
    End Property
    Public Sub New(ByVal d As KeyValuePair(Of String, String))
        mData = d
    End Sub
End Class
(Code ist nicht getestet)

Maas

Beitrag wurde zuletzt am 28.02.11 um 16:06:18 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
10 Threads gleichzeitig - Aber wie?2.118VB Master25.02.11 17:07
Re: 10 Threads gleichzeitig - Aber wie?1.363Maas25.02.11 17:27
Re: 10 Threads gleichzeitig - Aber wie?1.356VB Master25.02.11 17:45
Re: 10 Threads gleichzeitig - Aber wie?1.413Maas25.02.11 17:54
Re: 10 Threads gleichzeitig - Aber wie?1.280VB Master25.02.11 18:08
Re: 10 Threads gleichzeitig - Aber wie?1.347Maas25.02.11 19:16
Re: 10 Threads gleichzeitig - Aber wie?1.326VB Master25.02.11 20:51
Re: 10 Threads gleichzeitig - Aber wie?1.351ModeratorRalfE25.02.11 23:15
Re: 10 Threads gleichzeitig - Aber wie?1.275VB Master26.02.11 23:41
Re: 10 Threads gleichzeitig - Aber wie?1.325VB Master28.02.11 09:47
Re: 10 Threads gleichzeitig - Aber wie?1.284Maas28.02.11 10:38
Re: 10 Threads gleichzeitig - Aber wie?1.320VB Master28.02.11 11:18
Re: 10 Threads gleichzeitig - Aber wie?1.380VB Master28.02.11 15:09
Re: 10 Threads gleichzeitig - Aber wie?1.306Maas28.02.11 16:05
Re: 10 Threads gleichzeitig - Aber wie?1.312VB Master01.03.11 21:57
Re: 10 Threads gleichzeitig - Aber wie?1.261Maas02.03.11 06:11
Re: 10 Threads gleichzeitig - Aber wie?1.424VB Master02.03.11 17:48

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel