2 aktionen durch kurze pause trennen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von datsspeed.

    2 aktionen durch kurze pause trennen

    Hallo,

    ich hab ein Programm geschriebn welches 2 Bilder einer Webcam aufnehmen soll, um zu sehen ob sich ein Motor bewegt oder nicht. Zwischen den 2 Bildern soll ca. 1 sec. pause sein. Die Bilder werden dann in 2 Pictureboxen dargestellt

    Ich wollte das ganze erst über threading.thread.sleep() machen aber da bleibt das Programm einfach hängen und macht mir dann nach z.b 1 sec ein bild für beide pictureboxen. D.h ich hab wieder nicht 2 Bilder sondern nur 1.

    Hab jetzt wirklich schon lange gesucht.. Timer hab ich versucht, zeigt aber eine fehlermeldung(evtl falsch eingebaut) Habt ihr eine Idee?

    Hier nur kurz der wesentliche Teil

    VB.NET-Quellcode

    1. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
    2. System.EventArgs) _
    3. Handles Button3.Click
    4. If Not [Handle].Equals(IntPtr.Zero) Then
    5. w32.MyHandle = [Handle]
    6. Dim img As Image = w32.GetImage()
    7. If img IsNot Nothing Then
    8. Me.PictureBox2.Image = img
    9. End If
    10. Else
    11. MessageBox.Show("Es ist ein Fehler aufgetreten.", "Info")
    12. End If
    13. Threading.Thread.Sleep(1000)
    14. If Not [Handle].Equals(IntPtr.Zero) Then
    15. w32.MyHandle = [Handle]
    16. Dim img As Image = w32.GetImage()
    17. If img IsNot Nothing Then
    18. Me.PictureBox3.Image = img
    19. End If
    20. Else
    21. MessageBox.Show("Es ist ein Fehler aufgetreten.", "Info")
    22. End If
    23. End Sub




    vielen dank für eure hilfe

    Bibs
    Wo liegt das Problem?

    Setze alles in einen Timer und stelle Ihn auf die Zeit, wie du es gerne hättest.

    1000ms = 1s

    Das ist zu beachten. Im Tick Event holst du dir dann die WebCambilder.

    LG
    Sub Pause(ByVal pau As Single)

    'Programmausführung verzögern *******************************************************

    Dim start, finish As Single
    start = Microsoft.VisualBasic.DateAndTime.Timer

    finish = start + pau
    Do While Microsoft.VisualBasic.DateAndTime.Timer < finish
    Application.DoEvents()
    Loop

    End Sub

    Zeile 25: Pause 1
    willst du des ganze bei jedem button click aktualisiert haben oder automatisch ?

    weil wenn du es automatisch haben willst würd ich des über nen thread einfach machen der beim form load angestartet wird, dann kommts au net zum aufhängen von der Form

    wenn willst kann ich dir sowas in der art kurz runter tippen wenn es das ist was du brauchst...

    lg datsspeed
    also erst mal vielen dank für eure Hilfen, hab die Frage schon in einem anderen Forum gestellt und nur Sinnlose vorschläge bekommen.

    Also ich hab jetzt den Code von hamog genommen... funktioniert einwandfrei! :thumbsup:

    @datsspeed: danke für dein angebot, aber ich wollte das schon über den Button_click



    mfg

    Bibs