Frage von Aicher1998, 48

VB.Net Unterschied zwischen Thread und Backgroundworker?

Hallo ich wollte mal fragen, was denn nun der Unterschied ist zwischen Thread und Backgroundworker? Ich persönlich benutze meist den Thread. Mir halt mal einer gesagt: "Backgroundworker ist der bessere Thread", kann man das so sagen? Immerhin kann ja Backgroundworker direkt informieren, wenn er mit seiner Arbeit fertig ist und Thread wirft immer eine Exception, wenn man ihn abbricht.

Expertenantwort
von martin7812, Community-Experte für programmieren, 48

Ich habe von Backgroundworkern bisher noch nichts gehört und mich daher gerade auf der Microsoft-Seite schlau gemacht:

Wenn ich es richtig verstehe, gibt es beim Backgroundworker eine standardisierte Möglichkeit, ihn abzubrechen und eine standardisierte Möglichkeit, den Fortschritt auszugeben.

Das Abbrechen selbst muss dabei aber der selbstgeschriebene Code übernehmen (also z.B. die "while"-Schleife muss sich beenden, wenn ein Abbruchwunsch erkannt wird).

Mit einem normalen Thread kann man das gleiche aber auch erreichen, indem man z.B. eine Variable auf "true" setzt, um dem Thread zu signalisieren, dass er sich beenden soll.

Wichtig ist der Backgroundworker, wenn man "fertige" Befehle verwenden will, um z.B. den Fortschritt des Threads anzuzeigen oder laufende Threads abzubrechen (also z.B. ein bereits fertiges Dialogfeld, in dem der Fortschritt für alle Hintergrundthreads angezeigt wird und auch "Abbruch"-Knöpfe für alle Threads vorhanden sind).

Schließlich können die "fertigen" Befehle nicht wissen, welche Variable man auf "true" setzen muss, um den Thread abzubrechen...

Kommentar von Aicher1998 ,

Es gibt für Threads auch noch den WaitCallback

Keine passende Antwort gefunden?

Fragen Sie die Community