| |
VB.NET - Ein- und UmsteigerFor To Schleife mit Pause | | | Autor: WaltherW | Datum: 20.08.08 15:19 |
| Ich möchte eine For To Schleife ablaufen lassen,
bei der nach jedem Durchlauf eine Pause gemacht wird.
Dabei möchte ich nicht Thread.Sleep verwenden da das Programm
ansprechbar bleiben muss. Ich dachte an einen Timer....
Ungefähr so..
For i=0 to 20
'Anweisung
'Pause
Next | |
Re: For To Schleife mit Pause | | | Autor: dfense | Datum: 20.08.08 15:39 |
| ...dann lager doch deine anweisung in einen thread aus und lass den schlafen
vg. | |
Re: For To Schleife mit Pause | | | Autor: Maas | Datum: 20.08.08 16:39 |
| Du kannst auch folgendes verwenden.
Dim time As Date = Now
Do Until Now = DateAdd("s", 5, time)
Application.DoEvents()
Loop Pause für 5 Sekunden und das Programm bleibt ansprechbar.
Maas | |
Re: For To Schleife mit Pause | | | Autor: dfense | Datum: 20.08.08 18:42 |
| technisch sicherlich realisierbar, aber wir wollen doch nicht durchs knie ins auge schiessen ..
machs lieber mit nem thread, das ist professioneller
vg. | |
Re: For To Schleife mit Pause | | | Autor: WaltherW | Datum: 20.08.08 18:55 |
| Ich hab natürlich die Methode von Maas versucht um dann festzustellen das in der Zeit von Do bis Loop das Programm jeden Tastendruck ignoriert. Das nütz mir also nix. Schade.
Wie würde das denn mit dem thread ausschauen(Code)??? Hab damit noch nicht gearbeitet. | |
Re: For To Schleife mit Pause | | | Autor: keco | Datum: 20.08.08 19:01 |
| Kommt auf die Anwendung drauf an. Multithreadinganwendungen sind mit steigender Größe unübersichtlich und viel anfälliger für Fehler. Und wenn mit dem Ergebnis weiter gearbeitet werden soll, müssen ebenfalls noch paar Codezeilen implementiert werden.
Ich denke die Möglichkeit von Maas ist recht sinnvoll. | |
Re: For To Schleife mit Pause | | | Autor: WaltherW | Datum: 20.08.08 19:16 |
| Wie schon gesagt mir gefällt die Möglichkeit von Maas auch, doch das Programm muss auf einen Tastendruck reagieren können und das kann es durch das do - Loop nicht.
Hat noch jemand eine Idee? | |
Re: For To Schleife mit Pause | | | Autor: keco | Datum: 20.08.08 19:18 |
| Du kannst durch den Tastendruck eine Boolean auf True setzen und in der Do Loop diese Variable abfragen, wenn True, dann Schleife verlassen. Sollte funktionieren. | |
Re: For To Schleife mit Pause | | | Autor: dfense | Datum: 20.08.08 19:55 |
| Hey, jetzt mal Stop! Wir sind doch hier net in einer technischen Quizshow, sondern in einem Programmierforum
@Walther, so wirds gemacht:
Public Class Form1
Private mythread As New Threading.Thread(AddressOf MeineBerechnungen)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
mythread.Start()
End Sub
Private Sub MeineBerechnungen()
For i As Integer = 0 To 20
'Hier wird berechnet
'trallala.....
'...und jetzt wird geschnarcht
Threading.Thread.Sleep(5000) 'Oder wielang auch immer...
Next
End Sub
End Class Zitat: | | Multithreadinganwendungen sind mit steigender Größe unübersichtlich und viel anfälliger für Fehler. | |
Das halte ich für ein Gerücht
Zitat: | | Und wenn mit dem Ergebnis weiter gearbeitet werden soll, müssen ebenfalls noch paar Codezeilen implementiert werden. | |
Muss man sowieso. Und wir leben doch net mehr in den 70ern, wo es auf 5Kb ankommt.
Noch Fragen?
VG. | |
Re: For To Schleife mit Pause | | | Autor: keco | Datum: 20.08.08 20:06 |
| Technische Quizshow? Der BGW arbeitet mit seiner Abbruchmethode nicht sehr viel anders, wie ich das sehe, oder doch?
Was genau hälst du denn für ein Gerücht? Die darunter leidende Übersichtlichkeit/Verständniss des Programmablaufes oder die höhere Anfälligkeit für Fehler? Es ist eine Tatsache, dass das Programm schwerer zu verstehen ist, je mehr Threads gestartet und zum gleichen Zeitpunkt ausgeführt werden.
In Bezugnahme zu den zusätzlichen Codezeilen: Klar muss man Codezeilen schreiben. Aber warum sollte ich, im schlimmsten Falle noch als Anfänger, mit dem Thema Threads anfangen, was ein relativ komplexes Thema ist und für einen Anfänger wohl nicht sofort verständlich ist. Immerhin bringt es nichts den Code einfach nur stur zu übernehmen und im nachhinein nichts zu verstehen. Damit ist niemandem geholfen.
Ansonsten denke ich, dass die Verwendung von Threads für eine so einfache Operation nicht von Nöten ist. Aber wenn es für den Fragenden einfacher ist und verständlich, warum nicht; ist ja immerhin nur meine Meinung
Beitrag wurde zuletzt am 20.08.08 um 20:08:44 editiert. | |
Re: For To Schleife mit Pause | | | Autor: dfense | Datum: 20.08.08 20:21 |
| Naja. Das das Programm schwerer zu verstehen ist, nur weil Code von Threads ausgeführt wird, mag ich zu bezweifeln. Aber ich weis schon was du damit sagen willst
Aber höhere Anfälligkeit für doch nun wirklich nicht...
Threads (können) schon recht komplex wirken, aber ich denke mir mal man sollte es gleich richtig lernen oder gar nicht. So schlimm isses nun auch wieder nicht. Und Threads kann man für jeden Zweck benutzen, auch wenn er noch so klein ist | |
Re: For To Schleife mit Pause | | | Autor: WaltherW | Datum: 20.08.08 20:57 |
| Ich hab das ganze jetzt mal mit den Thread versucht, doch auch hier ist das Problem das mein Programm auf keinen Tastendruck reagiert. | |
Re: For To Schleife mit Pause | | | Autor: keco | Datum: 20.08.08 21:01 |
| Wenn du das unbedingt in einem eigenen Thread ausführen lassen willst und noch Anfänger in dem Bereich bist, empfehle ich den BackgroundWorker. Da findest du einiges hier im Forum.
Auch wenn mir dfense gleich wieder auf die Finger hauen möchte | |
Re: For To Schleife mit Pause | | | Autor: WaltherW | Datum: 20.08.08 21:08 |
| Also, ich fande das mit dem thread nicht so schwer, aber in meinem Fall triff wohl auch eher der Hinweis von Ralf Ehlert hin. ("..sonst kostet (im Sinne von Zeit) das Erzeugen des Threads mehr als der Nutzen")
Das Problem wenn man in eine For To Schleife nutzt, ist das leider auf keinen Tastendruck mehr Rücksicht genommen wird solang man sich n der Schleife befindet. Mit einem Ticker funktioniert das ganze wunderbar. | |
Re: For To Schleife mit Pause | | | Autor: Maas | Datum: 20.08.08 21:16 |
| Ich verstehe noch nicht so ganz, wann genau der Hauptthread nicht auf den Tastendruck reagiert.
In der For-Schleife, aber außerhalb der Do-Schleife? Dann ist es kein Wunder, da keine Events verarbeitet werden.
Oder in der Do-Schleife? Ich gehe davon aus, dass ein Tastendruck genauso, wie ein Klick auch ein Event auslöst, also durch DoEvents verarbeitet wird. Dann würde etwas nicht stimmen oder ich habe es falsch verstanden.
Maas | |
Re: For To Schleife mit Pause | | | Autor: dfense | Datum: 20.08.08 22:01 |
| Wenn trotz des Threads keine Tasten funktionieren, dann stimmt da etwas nicht...
@Ralf: yep, geb dir recht
@keco: nein will ich nicht. hast absolut recht | |
| 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 |
|
|
Neu! sevCommand 4.0
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|