Delay/Verzögerungs-Befehl

  • Excel

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

    Delay/Verzögerungs-Befehl

    Hallo,

    ich habe folgendes Problem:
    Ich würde gerne eine ganz einfache "Ampelschaltung" programmieren (bitte keine Fragen dazu) und bräuchte dazu einen sog. Delay-Befehl (bitte VB-2003 [also ich gehe in Word/Excel 2003 und drücke F11]).
    Der soll bewirken, dass erst Bild 1 geladen wird und (z.B.) 3 Sekunden später Bild 2....
    Ich hoffe ihr versteht was ich meine.

    Danke im Voraus!

    -Micha

    Edit by der_Kurt:
    bitte auf das richtige Unterforum achten
    * Topic verschoben*

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

    am besten aber mit BackGroundWorker:

    Visual Basic-Quellcode

    1. Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
    2. 'Lade Bild 1
    3. Threading.Thread.Sleep(3000)
    4. 'Lade Bild 2
    5. Threading.Thread.Sleep(3000)
    6. 'Lade Bild 3
    7. End Sub

    läuft dann schön Asynchron und beeinträchtigt nicht deine Performance

    lg. Julian
    @Devtronic
    fail^^

    Für sowas benutzt man einen Timer, der beeinträchtigt die Performance in "keinster" weise, da die Aufgabe - ein paar Bilder in einer Picturebox oder wo auch immer anzuzeigen - sehr schnell erledigt ist. Würde die Aufgabe lange dauern (merh als 50ms war glaubich die faustregel), dann würde man sie auslagern. Aber auch nur die Aufgabe - das immer wiederkehrende ausführen würde immernoch ein Timer verantworten. imo.

    => Also eine Timer benutzen.

    FreakJNS schrieb:

    @Devtronic
    fail^^

    Für sowas benutzt man einen Timer, der beeinträchtigt die Performance in "keinster" weise, da die Aufgabe - ein paar Bilder in einer Picturebox oder wo auch immer anzuzeigen - sehr schnell erledigt ist. Würde die Aufgabe lange dauern (merh als 50ms war glaubich die faustregel), dann würde man sie auslagern. Aber auch nur die Aufgabe - das immer wiederkehrende ausführen würde immernoch ein Timer verantworten. imo.

    => Also eine Timer benutzen.


    Also ich schwöre ja nurnoch auf Backgroundworker weil mit timer z.B. das mit dem Threadsleep auch net richtig funzt(sonst friert ja das ganze programm ein :P)

    Aber stimmt bei so ner aufgabe wäre vllt. ein timer doch besser ;)
    du sollst ja auch kein thread.sleep benutzen xD
    der Timer Tickt z.b. jede Sekunde (Interva = 1000). Du kannst also ganz einfach eine Variable hochzählen lassen. Auf die weise kannst du ganz einfach, mittels If-Abfrage, bestimmte Dinge nach 2, 3, 7 sekunden auslösen. Dann wird die Zählervariable resetet. Fertig.

    Wenn du etwas zu berechnen hast, dass sehr lange dauert (z.b. alle Primzahlen von 0 bis 100000000000), dann solltest du diesen arbeitsauftrag in einem Backgroundworker auslagern. So bleibt die GUI ansprechbar und im Hintergrund wird gearbeitet.

    Und ja, das ist etwas anderes als alle n-sekunden eine Aufgabe von weniger als 2ms Arbeitszeit abzufrühstücken - dafür benutzt man keinen BGW^^ Wer in einem Timer Sleep benutzt hat was ganz schön falsch gemacht - zumindest meistens xDD