Hallo zusammen,
eine Frage und zwar habe ich nun erfolgreich, nach langem grübeln, es geschafft einen Backgroundworker in meinem Programm zum laufen zu bringen.
In dem Dowork startet bei mir ein TCP Listener und dieser empfängt Daten speichert sie dann in einem String data ab. Läuft auch alles
Nun will ich aber diesen String mir anzeigen lassen. Irgendwie muss ich ja die Progresschanged Methode des Backgroundworkers aufrufen (nachdem die Daten im String sind) dann diese übergeben und die möchte ich mir dann in einer Textbox meines Programms mir anzeigen lassen.
Ich komme nicht weiter, könnt ihr mir dabei helfen bzw. sagen wie das geht?
thx
Gib den Leuten genug Informationen in einem Thema, dass sie Dir helfen können - ohne all Deine anderen Themen selbst im Forum zu suchen müssen, damit sie überhaupt verstehen, worum es geht.
Und schau auch mal ab und zu in die FAQ 👍
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hi,
ich verstehe das Problem auch nicht.
Die eigentliche Arbeit des BackgroundWorkers passiert ja ohnehin im DoWork, in welchem ja offensichtlich der String schon vorhanden ist.
Wo ist das Problem diesen String dann entsprechend auszugeben?
Ein Beispiel dazu findest du z.B. unter https://stackoverflow.com/questions/1862590/how-to-update-gui-with-backgroundworker
LG
Geht es um Ausgabe an die GUI? [FAQ] Controls von Thread aktualisieren lassen (Control.Invoke/Dispatcher.Invoke)
**:::
@vbprogger:
Manchmal ist es besser nichts zu sagen, als etwas komplett falsches.
Der BGW hat dafür extra das ProgressChanged, da muss man nix invoken.
@ado683:
Ganz abgesehen davon das BGW schon seit gefühlten tausend Jahren von async await abgelöst wurde,
jedes tutorial zum bgw beschreibt wie das mit dem Progresschanged geht.
Selbst die Doku von MS beschreibt das.
https://docs.microsoft.com/de-de/dotnet/api/system.componentmodel.backgroundworker.progresschanged?view=netframework-4.7.2
Also bitte tue dir einen gefallen und Lies dir die Doku mal durch.
@vbprogger:
Manchmal ist es besser nichts zu sagen, als etwas komplett falsches.
Der BGW hat dafür extra das ProgressChanged, da muss man nix invoken.
OK ich sage zukünftig dann nix mehr :p ... In den letzten Jahren habe ich C# sowieso vernachlässigt und schreibe nur noch in PowerShell :p
**:::
habe ich schon gefühlte tausend mal (genau die seite) aber da sind mir zu wenig infos drin.
naja egal
Dann erkläre hier, WAS Du nicht verstehst. Ansonsten kann man Dir nicht helfen.
Die Leute hier sehen Dein Code nicht, wir sehen Dein Problem nicht. Les mal Deine eigenen Beiträge durch und überleg Dir dann, ob jemand dies vor sich verstehen soll, wovon Du redest.
Kein Helfer hier, der seine Freizeit investiert um DIR zu helfen, hat große Lust und Zeit Dir die Informationen aus der Nase zu ziehe oder für Dich Lehrer zu spielen.
Du willst hier doch Hilfe; also mach es den Leuten so einfach wie möglich, dass Dir auch geholfen werden kann.
Siehe auch [Hinweis] Wie poste ich richtig?
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Was brauchst du denn noch für angaben.
Da steht das das Event aufgerufen wird von ReportProgress, dann schaut man da nach.
Du musst dringend lernen die Doku zu verstehen.
hi du hast zum einem das Event ProgressChanged, in diesem wird der Wert der Progressbar erhöht. Damit aber der BGW weiss wann du sich der Progress ändert (Der BGW ist ja nicht allwissend) musst du in dem Code Abschnitt in dem du einne Änderung des Progress hast die Methode des BGWs ReportProgress aufrufen der gibts du als Parameter den Wert mit.
Die Zusammmenfassung im DoWork wird die Methode ProgressReport auf gerufen mit dem Statuswert , was das Event ProgressChanged aufruft. Das Event erhöht dann den Value der Progressbar