![]() |
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 |
|
|
|
|
Windows-Version |
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
|
Download (12,1
kB)
|
Downloads bisher: [ 384 ]
|
|
|