Guten Abend Community!
Da es mich ein bisschen genervt hat, dass sich mein Programm immer "aufhängt", sobald es etwas tut, wollte ich einen Backgroundworker benutzen. Ich war noch nie ein wirklicher Freund von diesem, da ich ihn nie richtig verstanden habe.
Alles was ich möchte ist, dass er bestimmte Ergebnisse vergleicht und wenn eines zutrifft, dieses in einer Liste speichert und letztendlich in eine Listbox tut.
Mein Code sieht wie folgt aus:
Und dann soll er die Dateien, die größer als x MB sind, in die ListBox1 tun:
Am Ende sagt er mir sogar auch noch ganz stolz: Vorgang abgeschlossen
Entweder bin ich zu dumm oder es ist einfach ein ganz dummer Fehler...
Kann mir da jemand helfen?
Danke!
*Topic verschoben*
Da es mich ein bisschen genervt hat, dass sich mein Programm immer "aufhängt", sobald es etwas tut, wollte ich einen Backgroundworker benutzen. Ich war noch nie ein wirklicher Freund von diesem, da ich ihn nie richtig verstanden habe.
Alles was ich möchte ist, dass er bestimmte Ergebnisse vergleicht und wenn eines zutrifft, dieses in einer Liste speichert und letztendlich in eine Listbox tut.
Mein Code sieht wie folgt aus:
VB.NET-Quellcode
- Dim suche As Integer = 0
- Dim listboxx1 As List(Of String)
- Dim errorlogg As List(Of String)
- Dim verzeichnis As String = "C:\Users\Michdi"
- Dim WithEvents BGW As New System.ComponentModel.BackgroundWorker With {.WorkerReportsProgress = True, .WorkerSupportsCancellation = True}
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- If Not BGW.IsBusy Then
- status.Text = "Bitte warten..."
- Button1.Enabled = False
- BGW.RunWorkerAsync()
- End If
- End Sub
- Private Sub BGW_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BGW.DoWork
- Try
- suche = suche + 1
- Dim di As New DirectoryInfo(verzeichnis)
- Dim fiArr As FileInfo() = di.GetFiles("*", SearchOption.AllDirectories)
- Dim fri As FileInfo
- Dim MySize As Long
- Dim byti As Long = 1048576
- For Each fri In fiArr
- MySize = FileLen(fri.DirectoryName & "\" & fri.Name)
- If MySize >= TextBox1.Text * byti Then
- Dim grosse As Long = Math.Round(MySize / 1048576, 0)
- listboxx1.Add(fri.DirectoryName & "\" & fri.Name & " (" & grosse & " MB)")
- End If
- Next fri
- Catch ex As Exception
- errorlogg.Add(ex.Message)
- End Try
- End Sub
Und dann soll er die Dateien, die größer als x MB sind, in die ListBox1 tun:
VB.NET-Quellcode
- Private Sub BGW_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BGW.ProgressChanged
- Listbox1.Items.add(listboxx) 'Oder irgendwie anders
- End Sub
- Private Sub BGW_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BGW.RunWorkerCompleted
- status.Text = "Vorgang abgeschlossen"
- Button1.Enabled = True
- MsgBox(listboxx1) 'Diese ist komischerweise KOMPLETT leer.
- End Sub
Am Ende sagt er mir sogar auch noch ganz stolz: Vorgang abgeschlossen
Entweder bin ich zu dumm oder es ist einfach ein ganz dummer Fehler...
Kann mir da jemand helfen?
Danke!
*Topic verschoben*
Die beste maschinelle Übersetzung der Welt - DeepL Übersetzer
Alle Zitate, die ich seit dem 1.9.2017 übersetzt habe, wurden vollautomatisch mit DeepL übersetzt.
Alle Zitate, die ich seit dem 1.9.2017 übersetzt habe, wurden vollautomatisch mit DeepL übersetzt.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()