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
Listview (Große Datenmengen)
Andy.C
myCSharp.de - Member

Avatar #avatar-1875.gif


Dabei seit:
Beiträge: 248
Herkunft: Berlin

Themenstarter:

Listview (Große Datenmengen)

beantworten | zitieren | melden

Hallo,

kurze Frage zum Listview. Ich fülle das Listview mit daten, die aus einer TXT oder XML-Datei geladen werden. Kleinere Dateien sind kein Problem, nur größere verursachen ein hängen bleiben o.ä.
Ich habe schon versucht das ListView in einem Thread zu füllen. Dies Funktionierte zwar, aber dennoch war das Programm nicht benutzbar.

Mit BeginUpdate und EndUpdate habe ich auch schon versucht, ebenso das gleiche Problem. Ausser das bei geringen Datenmängen ein Geschwindigkeitsvorteil zu spüren war.

Was für möglichkeiten gäbe es denn das Listview element mit Daten zu füllen, die Applikation aber dennoch bedienbar zu halten?

Grüße
Kostenlose Backlinks und Linktausch auf linkSpring
private Nachricht | Beiträge des Benutzers
Lordas
myCSharp.de - Member



Dabei seit:
Beiträge: 63

beantworten | zitieren | melden

grundsätzlich kannst du das nur über einen thread steuern. das ist wie mit anderen cpu-intensiven aktionen auch. die frage ist halt nur wie stark wird deine cpu trotz thread gebraucht, denn richtiges multithreading können halt mal nur mehrprozessoren-pcs bzw. eben multicore-pcs.
private Nachricht | Beiträge des Benutzers
Andy.C
myCSharp.de - Member

Avatar #avatar-1875.gif


Dabei seit:
Beiträge: 248
Herkunft: Berlin

Themenstarter:

beantworten | zitieren | melden

Danke ersteinmal,

Es müsste dennoch eine möglichkeit geben das ListView mit Daten zu füllen, ohne dass sich die Applikation aufhängt o.ä.

Mir ist nur wichtig das sich nicht aufhängt oder gar einfriert

Grüße
Kostenlose Backlinks und Linktausch auf linkSpring
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Andy.C,

Lordas hat doch die Lösung schon gesagt: verwende einen extra Thread.

herbivore
private Nachricht | Beiträge des Benutzers
Andy.C
myCSharp.de - Member

Avatar #avatar-1875.gif


Dabei seit:
Beiträge: 248
Herkunft: Berlin

Themenstarter:

beantworten | zitieren | melden

Hallo,

ich habe schon einen neuen thread gestartet, jedoch bleibt das ganze unverändert.
Bei einer Liste mit 1000 einträgen, hängt sich das teil.

hmmm...

Grüße
Kostenlose Backlinks und Linktausch auf linkSpring
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Andy.C,

aus dem Thread darfst du ja nicht direkt auf das GUI zugreifen, sondern musst Control.Invoke/BeginInvoke benutzen. Nur läuft die damit aufgerufene Methode dann wieder im GUI-Thread. Wenn die Schleife in der Methode ist, ist die Situation in der Tat unverändert. Die Schleife muss in den Thread, nur die *einzelnen* Zugriffe muss man mit Control.Invoke/BeginInvoke durchführen. Dann geht es.

herbivore
private Nachricht | Beiträge des Benutzers
-acid-
myCSharp.de - Member



Dabei seit:
Beiträge: 885
Herkunft: Hessen

beantworten | zitieren | melden

Hallo Andy.C,

ich kann dir auch, sofern du .NET2.0 nutzt, den Backgroundworker zb. für das Füllen von Listen empfehlen. Ist sehr konfortabel.
private Nachricht | Beiträge des Benutzers
Andy.C
myCSharp.de - Member

Avatar #avatar-1875.gif


Dabei seit:
Beiträge: 248
Herkunft: Berlin

Themenstarter:

beantworten | zitieren | melden

Hi,

ich nutze Framework 2.0, vom Backgroundworker habe ich so noch nie etwas gehört .
Ich such mal nach Backgroundworker, vlt lässt sich ja was finden

herbivore ich nutze begininvoke / delegate.

Grüße
Kostenlose Backlinks und Linktausch auf linkSpring
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Andy.C,
Zitat
herbivore ich nutze begininvoke / delegate.
dann sollte dir helfen, was ich geschrieben habe.

herbivore
private Nachricht | Beiträge des Benutzers