Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Performance bei List<string> in Textbox ausgeben
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

Themenstarter:

Performance bei List<string> in Textbox ausgeben

beantworten | zitieren | melden

Hi!

Ich hab eine Liste (List<string>).
Jedes Element dieser Liste möchte ich nun in einer Zeil der Textbox anzeigen.

Das funktioniert auch schon nur blockiert das GUI solange nicht alle Zeilen
eingefügt bzw. angezeigt sind.

Ich geht mir foreach über die Liste und hänge
jedes Elemtent an die Textbox an.

Gibts ein Möglichkeit das Ganze performanter zu gestalten, bzw. dass
die Form nicht blockiert?
private Nachricht | Beiträge des Benutzers
Nitro2k7
myCSharp.de - Member

Avatar #avatar-2881.jpg


Dabei seit:
Beiträge: 277
Herkunft: H

beantworten | zitieren | melden

du kannst den ladevorgang in einen Thread auslagern...dann würde die gui nicht blockieren, da das Laden der Zeilen "parallel" verläuft :-)
private Nachricht | Beiträge des Benutzers
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

Themenstarter:

beantworten | zitieren | melden

Geht das mit dem BackgroundWorker?

Diesen verwende ich bereits um die Liste aufzubauen,
das funktioniert ganz gut.

Nur wie würde ich das Anzeigen per Thread lösen?
wenn ich mit jedem Element die Textbox update
blockierts doch wieder oder?
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo [email protected],

siehe [FAQ] Warum blockiert mein GUI? und [FAQ] Controls von Thread aktualisieren lassen (Control.Invoke)

Und [Artikel] Performant Strings verketten.

herbivore
private Nachricht | Beiträge des Benutzers
ErfinderDesRades
myCSharp.de - Experte

Avatar #avatar-3151.jpg


Dabei seit:
Beiträge: 5409

beantworten | zitieren | melden

Und wennde die List<String> mit string.Join("\n", liste) verkettest, und dann zuweist?
Der frühe Apfel fängt den Wurm.
private Nachricht | Beiträge des Benutzers
Cookiie
myCSharp.de - Member

Avatar #avatar-2328.jpg


Dabei seit:
Beiträge: 364
Herkunft: früher Leipzig, jetzt Out of Rosenheim

beantworten | zitieren | melden

Hi,

alternativ kannst du ja auch eine Listbox verwenden.
Diese stellt dir dann 2 Methoden zur Verfügung, einmal BeginUpdate() und Endupdate().
Wenn du die Zuweisung zwischen den Methoden machst, wird die Listbox nur einmal aktuallisiert.

Gruß Cookiie
"Hail to the King, Baby!"
private Nachricht | Beiträge des Benutzers