Laden...

WPF VB.NET - Multithreading - Fill Listbox

Erstellt von _Cashisclay vor 9 Jahren Letzter Beitrag vor 9 Jahren 2.899 Views
_
_Cashisclay Themenstarter:in
277 Beiträge seit 2014
vor 9 Jahren
WPF VB.NET - Multithreading - Fill Listbox

Hallo Liebe Community,

ich möchte meine Listbox(en) via Multithreading befüllen lassen, das die Items alle paar Sekunden nacheinander hinzugefügt werden.

Hat jemand einen Denkanstoß oder ein Beispiel? Ich komm bisher nicht voran.

Grüße

2.207 Beiträge seit 2011
vor 9 Jahren

Hallo _Cashisclay,

was hast du bisher probiert? Wo hakts genau?

[Hinweis] Wie poste ich richtig? Punkt 4 und 5.

[FAQ] Warum blockiert mein GUI? Hilft vielleicht auch.

Gruss

Coffeebean

_
_Cashisclay Themenstarter:in
277 Beiträge seit 2014
vor 9 Jahren

Hallo Coffeebean,

ich hab mich bisher ein wenig im Buch belesen, außerdem schon eine weile gegoogled.

Ich möchte halt aus einer bestehenden Liste die sogar als Itemsource schon angebunden ist, jedes Item nach einigen Sekunden in die ListBox laden, aus dem Grund das beim erstellen dieser Liste, jedes Item unterschiedliche Zeit brauch und dadurch die gesamte Anwendung hängt.

 Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
        Nas_Durchlauf.PingResult()
        'ListB_Nas.Items.Refresh()
        'Geräte_Durchlauf.PingResult()

        '' ListB_Geräte.DataContext = Geräte_Durchlauf.PingResults
        'Server_Durchlauf.PingResult()
        'Drucker_Durchlauf.PrinterResult()

        'Me.UpdateLayout()
        Dim testThread As New System.Threading.Thread(AddressOf Test2)

        testThread.Start()
  End Sub

    Private Sub Test1()
        Try
            System.Threading.Thread.Sleep(1000)
            Dim Test As New Properties

            Test.Name = "TEST"
            Test.Zugriff = 1

            Nas_Durchlauf.PingResults.Add(Test)

            ListB_Nas.Items.Refresh()

            System.Threading.Thread.Sleep(10000)

            Dim Bla As New Properties

            Bla.Name = "TEST2"
            Bla.Zugriff = 0

            Nas_Durchlauf.PingResults.Add(Bla)

            ListB_Nas.Items.Refresh()
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try

    End Sub

    Private Delegate Sub DelegateTest()

   Private Sub Test2()

        System.Threading.Thread.Sleep(1000)

        Dim test123 As New DelegateTest(AddressOf Test1)

        Me.Dispatcher.Invoke(test123)
   End Sub

Aber schon in diesem kleinen Versuch funktioniert es nicht, er fügt immer alles als gesamten Block hinzu. Nicht das eine Item nach 1 Sekunde und das andere nach 10 sondern alles nach 11.

16.806 Beiträge seit 2008
vor 9 Jahren

Hast Du auch den Link von Coffeebean gelesen?
Denn da steht die Lösung....

Die Verwendung von Sleetp zeigt, dass Du es nicht wirklich verstanden (oder gelesen) hast.