Tipp 0180 Download mit Completed-Event
Autor/Einsender:
Datum:
  Thomas Becker
18.06.2008
Entwicklungsumgebung:   VB.Net 2005
Framework:   2.0
Das Framework hält im Namenspace System.Net u.a. die Kurzzeiler DownloadString und DownloadFile bereit. Werden diese im Hauptthread ausgeführt, blockieren sie beim Download jedoch die Form. Die asyncrone Member DownloadStringAsync bzw. DownloadFileAsync nehmen dem Entwickler die Arbeit eines zusätzlichen Threads ab, so dass auch ohne Multithreading im Entwicklercode die Form nicht blockiert.
Um das Download-Ende zu signalisieren, liefern diese Methoden u.a. ein Ereignis bei vollendeten Download, so dass man rechtzeitig auf den Abschluss reagieren kann. Mit den Methoden DownloadFileAsync und DownloadStringAsync einer WebClient-Instanz werden die Vorgänge  jeweils gestartet. Die in .NET 2.0 neuen Ereignisse treten dann ein, wenn ein asynchroner Download einer Datei- oder einer String-Ressource abgeschlossen wird.
 
Imports System.Net
Public Class Form1
  Dim WithEvents wc1 As New WebClient
  Dim WithEvents wc2 As New WebClient

#Region "async. Stringdownload"
  Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
    ' asyncronen Stringdownload starten
    wc1.DownloadStringAsync(New Uri(TextBox1.Text))
  End Sub

  Private Sub DownloadStringCompleted(ByVal sender As Object, _
      ByVal e As DownloadStringCompletedEventArgs) _
      Handles wc1.DownloadStringCompleted
    ' vollen String anzeigen
    MsgBox(e.Result.ToString, MsgBoxStyle.OkOnly, _
           "Stringdownload beendet")
  End Sub
#End Region

#Region "async. Filedownload"
  Private Sub Button2_Click(ByVal sender As System.Object, ByVal _
       e As System.EventArgs) Handles Button2.Click
    ' asyncronen Filedownload starten
    wc2.DownloadFileAsync(New Uri(TextBox1.Text), "Testfile.txt")
  End Sub

  Private Sub DownloadFileCompleted(ByVal sender As Object, ByVal _
      e As System.ComponentModel.AsyncCompletedEventArgs) _
      Handles wc2.DownloadFileCompleted
    MsgBox("Filedownload in Testfile.txt beendet.")
    ' Downloadfile öffnen
    Diagnostics.Process.Start("Testfile.txt")
  End Sub
#End Region

  Private Sub Button3_Click(ByVal sender As System.Object, ByVal _
      e As System.EventArgs) Handles Button3.Click
    Me.Close()
  End Sub
End Class
 
Weitere Links zum Thema
Datei-Download

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  (12,1 kB) Downloads bisher: [ 319 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Tipps | Projekte | Tutorials | Bücherecke | VB-/VBA-Tipps | API-Referenz | Komponenten | VB.Net-Forum | VB/VBA-Forum | DirectX-Forum | Foren-Archiv | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Mittwoch, 18. Januar 2012