Laden...

[gelöst]Backgroundworker stellt den String nicht in einer Textbox dar

Erstellt von TKipp vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.376 Views
T
TKipp Themenstarter:in
18 Beiträge seit 2019
vor 5 Jahren
[gelöst]Backgroundworker stellt den String nicht in einer Textbox dar

Hallo Leute, folgender Code müsste laut Debugger eigentlich einen sehr langen Uploadstring in eine Textbox verfrachten. De facto bleibt die Textbox jedoch leer, obgleich laut Debugger der Texteigenschaft den entsprechenden (String-)Wert zugewiesen wurde. Was ist da los?


.
.
backgroundWorker2.RunWorkerAsync();
backgroundWorker2.DoWork += new DoWorkEventHandler(backgroundWorker2_DoWork);

private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e) {
    textBox2.Invoke(new Action(() => {
        textBox2.Visible = true;
        textBox2.Text = fileContent;
 //sowohl fileContent als auch die property Text wurde mit Werten gefüllt. Die Textbox bleibt trotzdem leer
     }));
  backgroundWorker2.ReportProgress(2);
}

        private void backgroundWorker2_ProgressChanged(object sender, ProgressChangedEventArgs e) {
            try {
                progressBar1.Value = e.ProgressPercentage * 10;
                ProgressBar to the BackgroundWorker progress.
                this.Text = e.ProgressPercentage.ToString();
            } catch(Exception error) {
_logger.Error("unknown error in backgroundWorker1_ProgressChanged_1() detected{0}{1}", Environment.NewLine, error.ToString());
                string ausgabe = "error in backgroundWorker1_ProgressChanged_1() detected, which has been protocollated in log";
                this.Message(ausgabe, "Error", MessageBoxIcon.Error);
            }
        }

TKipp

16.835 Beiträge seit 2008
vor 5 Jahren

Das Event muss natürlich vor dem Run gesetzt werden; macht sonst kein Sinn.

T
TKipp Themenstarter:in
18 Beiträge seit 2019
vor 5 Jahren

Was meinst du mit Event, was mit Run?

TKipp

16.835 Beiträge seit 2008
vor 5 Jahren
backgroundWorker2.RunWorkerAsync();  
backgroundWorker2.DoWork += new DoWorkEventHandler(backgroundWorker2_DoWork);  
T
TKipp Themenstarter:in
18 Beiträge seit 2019
vor 5 Jahren

Steht doch genau so in meinem Code. Ganz oben, nach den zwei Folgepunkten(.. vertikal)

TKipp

1.696 Beiträge seit 2006
vor 5 Jahren

Steht doch genau so in meinem Code. Ganz oben, nach den zwei Folgepunkten(.. vertikal)

Eben ... und das ist verkehrt herum 😃

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

T
TKipp Themenstarter:in
18 Beiträge seit 2019
vor 5 Jahren

Ach sooo, du meinst also so:
erst das Event:

backgroundWorker2.DoWork += new DoWorkEventHandler(backgroundWorker2_DoWork);

dann der Run:

backgroundWorker2.RunWorkerAsync();

vielen Dank dafür. bin noch ein Newbie(). wie kann man in diesem Forum
(1) Reputationspunkte für den Helfenden vergeben
(2) Den Thread als erfolgreich gelöst beenden?

TKipp

T
2.224 Beiträge seit 2008
vor 5 Jahren

1.Gar nicht, da das Forum solch ein System nicht besitzt.
2.Kannst du notfalls den Titel anpassen, ist aber nicht wirklich sinnvoll m.M. nach.
Sonst würden wir hier in jedem Thread Titel immer Erledigt stehen haben.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

16.835 Beiträge seit 2008
vor 5 Jahren

Punkte gibts hier bewusst nicht.
Und lösen einfach Titel editieren und [gelöst] vorweg schreiben.

@T-Virus: doch, die Forensoftware kann das, ist aber deaktiviert.
Und das mit dem Titel ist Deine Meinung - aber in [Hinweis] Wie poste ich richtig? so beschrieben 😉

T
2.224 Beiträge seit 2008
vor 5 Jahren

@Abt
Mag zwar sein aber Konsequent wird es nicht angewendet.
Das die Software das kann ist natürlich interessant sehe aber auch keinen nutzen daraus bzw. schafft es auch falsche Anreize wie z.B. Stackoverflow.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.