Warte-Funktion??

  • VB.NET

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

    Warte-Funktion??

    Hallo ich hab folgende Frage:
    Ich will das mein Programm an einer Stellle 5 Sekunden wartet und dann weiter macht!!!
    System.Threading.Thread.Sleep(5000)
    Funktioniert zwar super, aber dabei friert halt das ganze Programm ein!!
    Das soll es eben nicht....
    Ja was erwartest du denn, wenn du den Thread für 5 Sekunden einfrierst? Außerdem macht es eigentlich nie Sinn, den Thread zu blockieren.

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Dim Counter As Integer
    4. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    5. Label1.Text = "0" 'Anfangs Zahl
    6. End Sub
    7. 'Timer mit einstellung starten !
    8. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    9. If ComboBox1.Text = "" Then
    10. MsgBox("Bitte Zeit einstellen", MsgBoxStyle.Critical, "Fehler")
    11. Else
    12. Button1.BackColor = Color.Red
    13. Button2.BackColor = Color.Gray
    14. Timer1.Start()
    15. Timer1.Interval = ComboBox1.Text & "000"
    16. End If
    17. End Sub
    18. 'Timer stop
    19. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    20. Button2.BackColor = Color.Red
    21. Button1.BackColor = Color.Gray
    22. Timer1.Stop()
    23. End Sub
    24. 'Timer und die Funktion die alle x Secunden ausgelöst wirt und die nächste Zeile list
    25. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    26. Counter = Counter + 1 ' bei jedem Click um eins erhöhen
    27. Label1.Text = Counter
    28. Dim sr As StreamReader = New StreamReader("C:\Users\zeus\Desktop\1.txt") 'Hier die auszulesende Datei angeben !
    29. Dim line As String
    30. Dim i As Integer
    31. For i = 1 To Label1.Text ' Im Label1 angegebene Zeile auslesen
    32. line = sr.ReadLine()
    33. lblzeile.Text = line
    34. Next
    35. If Label1.Text = "10" Then 'Bis wo hin wird gezählt bevor es von neuem beginnt - Anpassen !
    36. Counter = "0"
    37. End If
    38. End Sub
    39. End Class


    LG Andre....

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

    @TVX: ;(
    Option Strict hast Du wohl Off.
    Timer1.Interval = ComboBox1.Text & "000"
    WTF?
    For i = 1 To Label1.Text
    WTF?
    Controls werden nicht verwendet, um Daten zwischenzuspeichern. Sie werden verwendet, um Daten anzuzeigen ExklusivOder Daten vom Benutzer anzunehmen. Der Spezialfall ist das Binding, bei dem können Daten angezeigt und gleichzeitig entgegengenommen werden. Abe da greift man auch nicht auf das Control zu, sondern auf die gebundene Datenquelle.

    Nope, so darf das nicht sein.


    @lol34lol34: Wofür willst Du denn warten? Was möchtest Du damit bezwecken.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    @Samus Aran:
    Das stimmt, allerdings muss man sich im klaren sein, was man damit macht. Schließlich reicht es nicht einfach, await davor zu schreiben, sondern das Design (nicht UI-Design) des Programmes muss auch auf das neue Async-Pattern ausgelegt sein. Schließlich muss man auch der Funktion auch den async-Modifier hinzufügen. Was das genau macht, ist vielen nicht ganz klar, was am Ende zu Spaghetticode führt, bei dem einfach überall await, Task(Of T) und async steht (und der Entwickler selber denkt nur: "Ka, geht schon und VS sagt, dass das da hin soll"). Man muss schon wissen, was man tut.
    Mehr dazu, siehe hier:
    [Allgemein] Async Verständnis
    Von meinem iPhone gesendet

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