Do While Schleife mit Abbruch Bedingung

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Nic.

    Do While Schleife mit Abbruch Bedingung

    Hallo,

    ich habe diese kleine While Schleife

    VB.NET-Quellcode

    1. Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Interactive
    2. Application.DoEvents()
    3. Loop


    welche unsauber darauf wartet das die Webseite im WebBrowser1 "Interactive" geladen ist. Nun würde ich gerne zusätzlich eine Abbruch Bedingung einbauen welche so aufgebaut sein soll das nach 10 Sekunden die Schleife verlassen wird. Das würde dann in der Praxis auftreten falls die Webseite nicht erreichbar ist.

    Ich habe mir schon ein paar Sachen bezüglich Timer durchgelesen doch habe ich keinen Ansatz im Kopf wie ich das realisieren könnte.
    Bau doch einfach in die Do-Schleife ein

    VB.NET-Quellcode

    1. if timer1.value = 1000 then
    2. exit do
    3. End if


    vorher deklarierst du einen timer, oder setzt ihn sofort mit in den Webbrowser ein, und startest ihn mit timer1.start
    er misst übrigens die Zeit in Millisekunden ;)

    MfG
    LevelXProject
    Nimm dein Wecker, baue eine Elektronik welche das Zeitsignal abfängt, übertrage es über den COM oder LPT Port an dein Rechner und werte es dort aus


    ... NOT!!!



    Wieso zusätzlich zu der schon schlechten Do-Schleife noch mehr Müll? Die einzig richtige Antwort hat Pico bereits gegeben.
    Wie picoflop bereits sagte:

    Versuch mal folgendes:

    VB.NET-Quellcode

    1. Class Form1
    2. Public WithEvents webbrowser1 As New WebBrowser
    3. Private Sub webbrowser1_DocumentCompleted(sender As Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles webbrowser1.DocumentCompleted
    4. ' Dein Code hier...
    5. End Sub
    6. End Class
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D
    Mein Ansatz bzw. mein Ziel ist es ja das mein Programm folgendes ausführt:

    Zur Webseite navigieren.
    Das Programm solange stoppen (Einfrieren) bis die Webseite aufgerufen ist.
    Wenn die Webseite fertig geladen ist wird das Programm fortgesetzt. Sollte aber nach 10 Sekunden immer noch das Programm eingefroren sein (also die Webseite nicht vollständig geladen sein) wird es fortgesetzt als wäre die Webseite vollständig geladen.
    Nicht nur dass das Programm in diesem Zustand normal ein Fehlerfall ist, manche Systeme erkennen es wenn ein Programm nicht mehr reagiert und bieten an es zu beenden. Also ist Einfrieren wohl denkbar schlecht. Du kannst deine GUI auch so Disablen oder sowas damit der User nichts mehr machen kann, das wäre eine deutlich intelligentere Methode.
    Das einfrieren war eher symbolisch gemeint.

    Der Programmcode soll an dem Punkt gestoppt werden bis die Webseite geladen ist oder 10 Sekunden abgelaufen sind. Ich möchte das der nachfolgende Code also erst mit Verzögerung abgearbeitet wird.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nic“ ()