Thema: Pause im Code

  1. #1
    Avatar von Gangstersheep
    Registriert seit
    18.11.2011
    Beiträge
    368
    Thanked 243 Times in 168 Posts

    Standard Pause im Code

    Hey U-Hacks,

    ich möchte gern in VB.net eine Pause im Code einbauen damit ich im WebBrowser von einer Website Daten Auslesen kann. Die Pause sollte ca. 1-2 Sekunden haben damit der Webbrowser ruhig Laden kann und nach de Pause den Text in eine RichTextbox ausgeben kann.

    Code Beispiel:

    wb.navigate("URL")
    PAUSE (1-2 Sekunden)
    rtb.Text = wb.Document.GetElementById("Div-Container").InnerTxt

    Beim zweiten durchlauf möchte ich das selbe machen aber mit einer anderen Abfrage im Webbrowser. Wenn ich dies allerdings mache wird mir der Text der ersten Abfrage angezeigt. Der zweite Text dann erst bei einer neuen Abfrage, usw.

    Ich habe schon sachen gelesen wie Thread.sleep() und so was aber das pausiert bei mir die komplette Form. Auch habe ich es mit dem Webbrowser DocumentComplete-Event versucht, kein Erfolg (Obwohl ich mir dort die Lösung erhofft hatte...). Hab also schon sogut wie jede Möglichkeit versucht die ich via Google finden konnte.

    Nun ist meine Frage an euch: Habt ihr vielleicht eine andere, sauberere Idee bzw. Lösung?

    Ich bin für Vorschläge offen und für einen Tipp oder eine Lösung sehr dankbar! : )

    Gruß.

  2. #2

    Registriert seit
    19.11.2011
    Beiträge
    496
    Thanked 412 Times in 268 Posts

    Standard AW: Pause im Code

    Business-Code lässt man nicht im GUI-Thread ausführen.
    Für dich heißt das, lass deine Logik in einem eigenen Thread ausführen. Dort kannst du auch ein Thread.sleep aufrufen, ohne dass das ganze Programm einfriert. Ins GUI würde ich dann aber noch eine ProgressBar einfügen, damit der Benutzer weiß, dass was im Hintergrund geschieht.
    Geändert von Mr. White (21.05.2013 um 14:21 Uhr)

  3. #3
    Avatar von Sky.NET
    Registriert seit
    26.11.2011
    Beiträge
    2.462
    Thanked 2.718 Times in 1.287 Posts
    Blog Entries
    7

    Standard AW: Pause im Code

    @GerMaN-DeLuXe
    Bitte lies doch was er schreibt, wenn er auf dich hören würde, hätte er jetzt einen völlig unnötigen Thread am Laufen, auch wenn deine allgemeine Aussage stimmt, hätte es hier doch mehr Schaden angerichtet.
    Zumal Threading in Kombination mit ActiveX-Steuerelementen ne SEHR lustige Angelegenheit werden kann.

    @Gangstersheep
    Eh du hattest mir ja ne PN geschrieben, ich hatte aber nicht gelesen, dass du das machen willst, damit der Browser zu Ende laden kann.

    Die Klasse WebBrowser hat ein Event namens 'OnDocumentCompleted'

    Schauste dir mal an.

    Und für die Zukunft:
    Thread.Sleep(int) und ähnliche Konstrukte sind der letzte Müll und führen oft zu entweder schwer auffindbaren Fehlern, oder zu extremen Performaceeinbußen (und ich rede hier nicht von Kleinigkeiten, wenn der User am Ende 30 minuten warten muss bis sein Programm wieder reagiert und so Scherze).

    @DMW007 HAHA ZU SPÄT DU LAHMER SACK!!!
    Java:
    Spoiler:

    Lustige Quotes:
    Spoiler:
    Zitat Zitat von Hydra Beitrag anzeigen
    Hier (in Deutschland) kann man keine andere tolle Aktivitäten machen, als zu chillen, shoppen, saufen und Partys feiern xD Ich habe nichts gegen ab und zu mal saufen und Partys feiern, aber das ist doch nicht wirklich das wahre Leben o_o
    Wieso das Internet für die meisten Leute gefährlich ist:
    Zitat Zitat von Silent Beitrag anzeigen
    Ich weiß ja nicht was der Sinn dahinter steckt es heißt immer "security reasons".

  4. The Following 2 Users Say Thank You to Sky.NET For This Useful Post:

    Chrissy (21.05.2013), Gangstersheep (21.05.2013)

  5. #4
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    7.839
    Thanked 9.358 Times in 3.198 Posts
    Blog Entries
    5

    Standard AW: Pause im Code

    Zitat Zitat von rVs14
    System.Threading.Thread.Sleep(200);
    
    Dann muss das ganze auch in einem seperaten Thread laufen, sonst friert die GUI ein wenn der Haupt-Thread blockiert wird.
    Die Lösung ist aber eh sehr unsauber, das DocumentCompleted-Event ist da eine wesentlich bessere Lösung. Funktioniert auch wenn mans richtig macht, hab ich auch schon einige male genutzt.
    Schau dir das mal an: WebBrowser.DocumentCompleted-Ereignis (System.Windows.Forms)
    Ansonsten poste deinen Source, sonst kann dir auch nicht wirklich geholfen werden.


  6. The Following User Says Thank You to DMW007 For This Useful Post:

    Gangstersheep (21.05.2013)

  7. #5
    Avatar von patlux
    Registriert seit
    26.10.2011
    Beiträge
    1.196
    Thanked 1.597 Times in 726 Posts
    Blog Entries
    2

    Standard AW: Pause im Code

    Hat es einen bestimmten Grund weshalb du hier einen Webbrowser nutzt oder ist dir die Klasse HttpWebRequest nicht bekannt?

    Anleitung: [VB 2010] HttpWebRequest Tutorial für Anfänger+Fortgeschrittene - Internet/LAN - Visual-Basic-Forum VB-Paradise.de

    btw: Igitt, wie sieht denn die msdn-Seite nun aus...!? Schrecklich

  8. The Following User Says Thank You to patlux For This Useful Post:

    Gangstersheep (21.05.2013)

  9. #6
    Avatar von Gangstersheep
    Registriert seit
    18.11.2011
    Beiträge
    368
    Thanked 243 Times in 168 Posts

    Standard AW: Pause im Code

    Patlux seine Lösung funktioniert wunderbar!

    Kann also geschlossen werden.

Ähnliche Themen

  1. Verschenke 48h UL-Code
    Von Xatos im Forum Verschenke
    Antworten: 0
    Letzter Beitrag: 22.08.2013, 19:06
  2. Camtasia 8 - Pause?
    Von ShinjiKagawa im Forum Software
    Antworten: 4
    Letzter Beitrag: 20.10.2012, 23:07
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.