listbox aus anderem thread aufrufen

  • VB.NET

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

    listbox aus anderem thread aufrufen

    hi

    ich starte ein neuen thread und kann leider nicht die listbox auf form1 zugreiffen.

    könnte mir jemand ein beisbiel code für den invoke befehl geben? bekomme das irgendwie nicht hin


    greetz haufe
    ähh? wasn das :)
    Hey, cool. Ich habs jetzt auch verstanden (Delegates)!

    VB.NET-Quellcode

    1. Public Delegate Sub SoGehts()
    2. Private Sub SayTHX()
    3. Do While True
    4. MsgBox ("Danke")
    5. Loop
    6. End Sub
    7. Private Sub Form_Load (...) Handles MyBase.Load
    8. BGW.RunWorkerAsync()
    9. End Sub
    10. Private Sub BGW_DoWork(...) Handles BGW.DoWork
    11. Me.Invoke(New SoGehts(AdressOf SayTHX))
    12. End Sub
    danke an alle

    VB.NET-Quellcode

    1. Public Class Form1
    2. Public Delegate Sub test()
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. Dim ns As New Threading.Thread(AddressOf thread)
    5. ns.Start()
    6. End Sub
    7. Sub thread()
    8. While 1 = 1
    9. i += 1
    10. Me.Invoke(New test(AddressOf aha))
    11. End While
    12. End Sub
    13. Dim i As Integer = 0
    14. Sub aha()
    15. TextBox1.Text = i
    16. End Sub
    17. End Class
    ähh? wasn das :)

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

    haufe schrieb:

    danke an alle

    VB.NET-Quellcode

    1. Public Class Form1
    2. Public Delegate Sub test()
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. Dim ns As New Threading.Thread(AddressOf thread)
    5. ns.Start()
    6. End Sub
    7. Sub thread()
    8. While 1 = 1
    9. i += 1
    10. Me.Invoke(New test(AddressOf aha))
    11. End While
    12. End Sub
    13. Dim i As Integer = 0
    14. Sub aha()
    15. TextBox1.Text = i
    16. End Sub
    17. End Class


    Wenn du ns.Start() durch ns.RunWorkerAsync() ersetzt
    und Thread() - Handles ns.DoWork anfügst

    sollte es gehen, falls das Programm mit irrsinnsgeschwindigkeit Schäfchen zählen soll und in eine TextBox den Wert packen soll (was dann am längsten dauert)