Schelifenabbruch



  • hi.
    also ich habe folgendes Problem.
    es geht darum im 2 sekundentakt eine datenbank auszulesen.
    jetzt habe ich diese datenbank-abfrage in eine do-while schleife einegbettet und als abbruchbedingung das drücken eines buttons angegeben! innerhalb der schleife habe ich noch eine Thread.sleep(2000) funktion geschrieben dass mein rechner die 2 sekunden abwartet! aber das funktionbiert nicht! der rechner gibt mir einfach keinen wert aus sondern wartet und wartet und den abbruchbutton kann ich auch nicht drücken?! Kann mir bitte jemand sagen was ich da falsch egmacht habe? 😕
    Danke caravan87



  • Du musst die Datenbank abfrage in einen Seperaten Thread packen.



  • Die deutlich schlechtere Alternative zum Thread (wirklich zu Empfehlen) wäre der Einsatz von Timer und ggf. DoEvents.



  • ok das hilft mir erstmal nen stück weiter.....
    ähhh kann mir aber jemand sagen wie das praktisch aussieht!
    also ich habe nen thread den ich "schlafen" lege dann habe ich einen für die danetnbankabfrage und dann noch einen für meinen abbruchbutton? seh ich das richtig????
    Danke



  • Nein, du brauchst nur für die DB-Abfrage einen zusätzlichen Thread, den Button fragst du ganz einfach in deinem Hauptthread (Formular) mittels des OnClick-Events ab und stoppst damit dann den DB-Thread.

    Wenn du .NET 2.0 benutzt, schau dir mal die Klasse BackgroundWorker an.


Anmelden zum Antworten