Hi,
ich habe schon das ein oder andere mal mit einem BackgroundWorker gearbeitet.
Weiterhin habe ich schon immer mal wieder gelesen das man eigene Threads erstellen kann um bestimmte Aufgaben abzuarbeiten.
Aber was ich nicht versetehe ist wann es von Vorteil ist einen Thread zu erstellen und keinen Backgroundworker?
Das ich bei dem Thread die Prio selbst wählen kann währe warscheinlich ein Vorteil, aber wird ja sicherlich nicht der einzige Vorteil sein.
Kann man pauschal sagen das man bei einer synchronen/asynchronen abarbeitung eine der beiden bevorzugen sollte oder gibt es andere Indizien um zu entscheinden was man wählen sollte?
Ich habe ein simples Programm ersetllt welches mir alle Dateien auf der Festplatte/USB Stick/ Netzlaufwerk,... anzeigt.
Das Programm habe ich einmal im Backgroundworker ausgeführt und einmal für jedes Speichermedium ein eigenen Thread erzeugt, aber ich kann nicht sagen das eine der beiden Methoden sonderlich schneller ist als die andere ( ich habe auch nicht wirklich die Zeit gemessen ).
anbei mal die Codeschnipsel :
Backgroundworker :
und hier die Threadmethode :
ich habe schon das ein oder andere mal mit einem BackgroundWorker gearbeitet.
Weiterhin habe ich schon immer mal wieder gelesen das man eigene Threads erstellen kann um bestimmte Aufgaben abzuarbeiten.
Aber was ich nicht versetehe ist wann es von Vorteil ist einen Thread zu erstellen und keinen Backgroundworker?
Das ich bei dem Thread die Prio selbst wählen kann währe warscheinlich ein Vorteil, aber wird ja sicherlich nicht der einzige Vorteil sein.
Kann man pauschal sagen das man bei einer synchronen/asynchronen abarbeitung eine der beiden bevorzugen sollte oder gibt es andere Indizien um zu entscheinden was man wählen sollte?
Ich habe ein simples Programm ersetllt welches mir alle Dateien auf der Festplatte/USB Stick/ Netzlaufwerk,... anzeigt.
Das Programm habe ich einmal im Backgroundworker ausgeführt und einmal für jedes Speichermedium ein eigenen Thread erzeugt, aber ich kann nicht sagen das eine der beiden Methoden sonderlich schneller ist als die andere ( ich habe auch nicht wirklich die Zeit gemessen ).
anbei mal die Codeschnipsel :
Backgroundworker :
VB.NET-Quellcode
- For i = 0 To My.Computer.FileSystem.Drives.Count - 1
- Dim info As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(My.Computer.FileSystem.Drives(i).ToString)
- Dim dateien() As System.IO.FileInfo = info.GetFiles("*", IO.SearchOption.AllDirectories)
- For Each f As System.IO.FileInfo In dateien
- RichTextBox1.Text = RichTextBox1.Text & vbCrLf & laufzahl & f.FullName & " " & f.Length
- Next
- Next
und hier die Threadmethode :
VB.NET-Quellcode
- Sub Auswertung(ByVal LaufwerksKennung As Integer)
- Dim Info As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(My.Computer.FileSystem.Drives(LaufwerksKennung).ToString)
- Dim Dateien() As System.IO.FileInfo = Info.GetFiles("*", IO.SearchOption.AllDirectories)
- For Each f As System.IO.FileInfo In Dateien
- RichTextBox1.Text = RichTextBox1.Text & vbCrLf & f.FullName
- Next
- End Sub