| |
VB.NET - Ein- und UmsteigerRe: Webrequest & GUI refresh (Threading?) | | | Autor: Code_mancer | Datum: 29.03.11 16:43 |
| Um Threads wirst du hierbei wohl kaum drum rum kommen, so wie ich das sehe. Aber das Thema ist eigentlich weniger komplex, als es zunächst den Anschein hat.
Beschäftige dich ruhig damit, es lohnt sich. Schon alleine um Datenanzeige und Datenhaltung oder Berechnung voneinander zu trennen. Wenn du dazu Fragen hast, hau ruhig raus :P
--------------------
Ich habe keine besondere Begabung, sondern bin nur leidenschaftlich neugierig.
- Albert Einstein | |
Webrequest & GUI refresh (Threading?) | | | Autor: cipherwar | Datum: 29.03.11 10:22 |
| Hallo,
ich habe ein Problem mit dem Refresh der GUI. Mein Programm soll eine Anzahl von Webseiten aufrufen und die zurückgelieferten Responses in einer Datei speichern. Darüber hinaus soll der Benutzer in einer Textbox (tbLog) informiert werden, welche Website grade bearbeitet wird und er soll die Möglichkeit haben, mit einem "Abbruch"-Butten den ganzen Vorgang zu beenden, wenn er keine Lust mehr hat zu warten.
Wenn ich nun nach einen Button-Click in einer Schleife nach und nach alle Seiten abfrage kommt es dazu, dass dann zwar die Websites abgefragt werden und auch die Speicherung erfolgt, allerdings kann ich während der gesamten Zeit überhaupt keine Interaktion mit meiner GUI mehr vornehmen.
Das ist insofern dumm, als ich weder dem User in meiner textbox tbLog darüber informieren kann, welcher Request grade verarbeitet wurde, als ich auch nicht den "Abbruch"-Button drücken kann, um den Prozess zu stoppen , wenn es zu lange dauert.
Ich habe nun die Anweisung Me.Refresh() auf die GUI angesetzt, aber das bringt auch nichts. Dann habe ich was über Threading gelesen, aber sämtliche Beispiele die ich gefunden habe, erscheinen mir extrem komplex und für meine Zwecke überdimensioniert.
Hier sind die wesentlichen Schnipsel meines Quellcodes:
1) Anstoß der Funktionalität
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
Me.tbLog.Clear()
Dim zaehler As Integer
Do Until (zaehler = 20)
Dim antwortseite As String
antwortseite = getResults( _
"http://localhost/antiquartwo/test-params.php", _
"field-keywords=ASP.NET 2.0")
' todo: verarbeiten der antwortseite
' anzeige der response in der GUI
Me.tbLog.Text &= antwortseite
zaehler = zaehler + 1
Loop
Me.Refresh()
End Sub 2) Die Funktion, die die Websites mit einem POST-Request anfordert:
Function getResults(ByVal portalURI As String, ByVal suchbegriff As String) _
As String
Dim uri As New Uri(portalURI)
'Dim data As String = "field-keywords=ASP.NET 2.0"
Dim data As String = suchbegriff
Dim request As HttpWebRequest = HttpWebRequest.Create(uri)
request.Method = WebRequestMethods.Http.Post
request.ContentLength = data.Length
request.ContentType = "application/x-www-form-urlencoded"
Dim writer As New StreamWriter(request.GetRequestStream)
writer.Write(data)
writer.Close()
Dim oResponse As HttpWebResponse = request.GetResponse()
Dim reader As New StreamReader(oResponse.GetResponseStream())
Dim tmp As String = reader.ReadToEnd()
oResponse.Close()
'Response.Write(tmp)
getResults = tmp
End Function Kann mir jemand einen Tipp geben bzw. den Codeschnipsel ergänzen?
Gruß,
cipherwar | |
| 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 |
|
|
sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 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
|
|