dauerschleife der ausfürungen

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    dauerschleife der ausfürungen

    Hi,

    hab eine frage und zwar, möchte ich das sich mein programm ständig aktualisiert und berrücksichtigt ob der schritt abgeschlosen ist oder nicht.

    sprich soll das programm erkennen ob der schritt "schreibe nummer in textbox" abgeschlossen ist wenn ja zum nächsten schritt wenn nein schritt wiederholen.... denke mal das müste mit if ... then gehn aber die zwischenbausteine fehlen. wenn ich auf dem holzweg bin sagt es bitte :D

    mein programm hat bislang 3 schritte die ich bisher immer per einzelnen buttenclick gemacht habe das soll das programm jetzt selber.

    1. schritt webseite auslesen und text in textbox1 schreiben
    2. schritt textbox1 auslesen und nach bestimmter nummer suchen
    3. schritt name nummer zuordnen und meldung brigen

    das sind meine schritte, die mein programm bislang macht.

    wie gesagt soll das programm den vorherigen schritt wiederholen fals zb. in textbox1 nix steht usw.

    danke im forraus
    lg RazerElite

    RazerElite schrieb:

    schritt textbox1 auslesen und nach bestimmter nummer suchen

    ah - das kam mir im anneren Thread schon komisch vor, dass du in getrennten Schritten nach namen und nummern suchen willst.
    Ich denke, wenn name und nummer zusammengehören, sollteman auch im selben durchgang danach suchen.

    Tatsächlich scheint mir die Verbindung von Name und Nummer so etwas wie ein Datensatz zu sein, daher solltest du auch ein Datensatz-Objekt programmieren, da ich vermute, zu typisiertem Dataset dich nicht überreden zu können.
    ich hab die nummern per if then mit den namen verknüpft.
    da ich die nummern kenne die anrufen... und sie bei bedraf jederzeit einfügen kann.

    aber wie geht der befehl für wenn schrrit 1 nicht funktioniert dan wieder holen bis funktioniert und dan wenn funktioniert weitermachen?
    ok habs wie mach ich jetzt nurnoch ne dauerschleife eines programmstückes?
    Wie kann ich ein Befehl dauerhaft ausführen lassen? (und dss dauerhafte ausfüren dan per button starten und /oder stoppen? wie geht das?) muss nicht per button aber man muss es ja iwie anhalten können oder?!
    Timer benutzen: Intervaldauer einstellen, Starten. Neue Daten abrufen, prüfen, das Ganze von vorn. Wenn Bedingung = True wird Timer gestoppt, bis der Benutzer ihn wieder startet.

    Bedingung = True wäre vermutlich wenn Textbox2.Text eine Telefonnummer enthält. (Bezogen auf deinen letzten Thread)
    mach es doch mit einem backgroundworker. die ganzen aktionen (downloaden des quelltextes kann länger dauern, durchsuchen nach namen/nummern geht vermutlich in einem augenblick, meldung bringen geht auch schnell) laufen ja teilweise asynchron ab - zumindest sollten sie da sonst die GUI hängt.

    ein backgroundworker lädt den quelltext, ist er fertig schmeißt er das complete-event. dort lässt du die daten auswerten und "melden" (am besten nur wenn sich etwas verändert hat), ist alles fertig kann der backgroundworker wieder anfangen den quelltext zu laden.

    vorteil ist, dass du den backgroundworker auch abbrechen lassen kannst wenn eine gewisse zeit überschritten ist (z.b. wenn die internetverbindung mega schlecht wird) und ihn nach einer kurzen wartezeit neustarten lassen. auch gut ist, dass deine anwendung nicht hängt da der ladevorgang des quelltextes in einem seperaten thread ausgeführt wird. dein programm muss auch nicht dauernd prüfen ob die daten nun endlich geladen sind - der backgroundworker hat ja das entsprechende event

    EDIT: denek daran, dass du von dem backgroundworker aus nicht auf textbox1 etc zugreifen kannst! ist auch nicht nötig, einfach den geladenen quelltext in eine variable schreiben und erst im complete-event der textbox zuweisen. Im weiteren verlauf aber auch mit der variable weiterarbeiten!

    Unwesen schrieb:

    Timer benutzen: Intervaldauer einstellen, Starten. Neue Daten abrufen, prüfen, das Ganze von vorn. Wenn Bedingung = True wird Timer gestoppt, bis der Benutzer ihn wieder startet.

    Bedingung = True wäre vermutlich wenn Textbox2.Text eine Telefonnummer enthält. (Bezogen auf deinen letzten Thread)

    muss ich dan noch was importieren? wenn ja was? und wie würde das mit dem timer genau aussehen kenn mich mit time nicht aus.
    brächte dafür aber ein start und stop knopf! wie geht das?

    lg RazerElite u. Danke für eure hilfe :)

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

    ok hab jetzt in google nachgeschaut finde leider nix was richtig passt hab auch schon versucht einige abzuändern... aber leider ohne erfolg.
    hab timer das programm soll dan eig nur alle 2 sec eine aktion durchführen.

    wäre net wenn mir jemand helfen könnte
    lg razerelite

    hab jetzt schon paar verusche gestartet immer fail :(
    wie geht des wenn ich ein timer intervall haben will und ich will das er alle (zb 2sec) dein befehl ausfürt?
    und mit button start statet und mit button stop stoppt?
    er soll den intervall durchführen bis ich stop drück also nich nur eine vorgegebene zeit?!

    der interval soll aber wenn sich eine messagebox öffnet warten bis die messagebox wieder zu ist und dan weiter machen.

    die message box kann auch durch eine form2 ersetzt werden im notfall.

    bitte um hilfe

    lg RazerElite

    Es gibt eine Bearbeiten-Funktion. Bitte keine Doppelposts.
    * Beiträge zusammengefügt *

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „der_Kurt“ ()

    Pseudo:

    Quellcode

    1. Timer Start
    2. ausführung
    3. tue bis timer stop
    4. Timer warte interval
    5. ausführung

    Das ist das, was der Timer tut...
    bzw. in Threads/BackgroundWorker ausgedrückt:

    VB.NET-Quellcode

    1. Sub doSt()
    2. Do
    3. If doStstart Then
    4. tueetwas()
    5. Threading.Thread.Sleep(interval)
    6. End If
    7. Loop
    8. End Sub


    Wenn du nun den Timer alle 2 Sec einen Befehl ausführen lassen möchtest,
    muss das Interval auf 2000 ms gesetzt werden

    VB.NET-Quellcode

    1. Timer.Interval = 2000

    Starten

    VB.NET-Quellcode

    1. Timer.Start()

    Stoppen

    VB.NET-Quellcode

    1. Timer.Stop()

    Fertig..mehr brauchst du nicht wissen.
    Außer vielleicht dass alles im Timer_Tick() Event stattfindet.

    Viel Glück
    doesn't work.
    Wieso machst du dir das überhaupt so schwer?

    VB.NET-Quellcode

    1. Dim thread As Threading.Thread
    2. Dim halt As Boolean = False
    3. Sub dost()
    4. Do
    5. 'tueetwas
    6. If not halt Then
    7. Messagebox.Show("Irgendetwas")
    8. End If
    9. Threading.Thread.Sleep(1000)
    10. Loop Until halt
    11. End Sub
    12. Sub button_click()
    13. thread = new Threading.Thread(AddressOf dost)
    14. halt = false
    15. thread.start()
    16. End Sub
    17. Sub button2_Click()
    18. halt = true
    19. End Sub
    in der message box steht aber immer was anderes drin nie der gleiche text... will nur den code für if messagebox offen then (ausfürung des folgenden codes) aber so geht des nich... da der text in messagbox nicht gleich ist

    sprich ist messagebox offen halt timer an wenn wieder zu mach nach 3 sec weiter

    sry bin relative neu in vb .. bin noch am lernen sry