vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Webrequest & GUI refresh (Threading?)1.787cipherwar29.03.11 10:22
Re: Webrequest & GUI refresh (Threading?)798Code_mancer29.03.11 16:43

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-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