Hallo Leute,
ich habe einen Backgroundworker implementiert um wirklich sehr rechenintensive Routinen auszulagern.
Die Routinen geben jeweils ein String zurück.
Diesen übergebe ich an ReportProgess mittels:
Mein ProgressChange Event schaut so aus:
Also dieses Event wird mehrere 1000 male aufgerufen um den aktuellen Fortschritt zu übergeben (nur den String, welcher einer TextBox angehängt wird)
Ich habe jedoch das Problem, dass (so macht es mir den anschein) die GUI nicht hinterkommt die Textbox upzudaten. Und das Programm hängt wieder, bis der BGWorker durchgelaufen ist und dann wird auch meine Textbox richtig dargestellt (die Einträge).
Aus Testzwecken habe ich versucht eine nicht ganz so rechenintensive Routine updaten zulassen (10-100 Events) dann stellt die Textbox den Verlauf richtig und vor allem das wichtigste "LIVE" dar.
Hat jemand eine Idee um das Problem zu lösen? Sollte ich keine Textbox (multiline) verwenden sondern ein anderes Control?
Die Anwendung wird in WPF + C# geschrieben.
Danke euch.
ich habe einen Backgroundworker implementiert um wirklich sehr rechenintensive Routinen auszulagern.
Die Routinen geben jeweils ein String zurück.
Diesen übergebe ich an ReportProgess mittels:
Code:
myBgWorker.ReportProgress(0, currentString);
Code:
void myBgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) { txtInfo.AppendText(e.UserState.ToString() + "\n"); txtInfo.ScrollToEnd(); }
Ich habe jedoch das Problem, dass (so macht es mir den anschein) die GUI nicht hinterkommt die Textbox upzudaten. Und das Programm hängt wieder, bis der BGWorker durchgelaufen ist und dann wird auch meine Textbox richtig dargestellt (die Einträge).
Aus Testzwecken habe ich versucht eine nicht ganz so rechenintensive Routine updaten zulassen (10-100 Events) dann stellt die Textbox den Verlauf richtig und vor allem das wichtigste "LIVE" dar.
Hat jemand eine Idee um das Problem zu lösen? Sollte ich keine Textbox (multiline) verwenden sondern ein anderes Control?
Die Anwendung wird in WPF + C# geschrieben.
Danke euch.
Comment