Zum Inhalt springen

AddRange wird immer langsamer?!


errox

Empfohlene Beiträge

Remove ist auch ein Methodenaufruf ;)

Ja aber der sollte nicht in der foreach durchgeführt werden, weil wie gesagt: Es ändert die Liste.

Naja.

Jedenfalls möchte ich mich bei allen bedanken.

Fazit für die den rest nicht lesen möchten: Ich gebe die Hoffnung auf.

Ich habe es auch mit reinen Controls versucht, ohne Properties zu setzen. Das "adden" braucht immer und immer länger. Die ersten paar male gut, aber danach geht einfach nichts mehr.

BIS ich das Panel dispose. Ich hab auch bereits gegooglet.

Ich werde es durch GDI lösen, ich zeichne meine Controls / Buttons selbst.

Trotzdem nochmal allen vielen lieben dank für eure hilfe! Immerhin hab ich gelernt: Kein Dipose in einer foreach ;) UND Controls nicht zu oft zur Laufzeit hinzufügen Besser wie nichts.

Danke!!!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die MSDN hält sich hier ja sehr bedeckt, was mögliche Probleme angeht. Mögliche Seiteneffekte ist mehr als vage. Eine For schleife funktioniert laut der beschreibung ja. Probier die doch erstmal aus.

Unabhängig davon: Ich frage mich ernsthaft, wo man in einem praktischen Beispiel soviele Steuerelemente in so kurzer Zeit erzeugen und wieder wegschmeißen muss.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du in einer for Schleife über eine Collection iterierst und Elemente aus dieser entfernst musst du aber aufpassen das du keines überspringst.

Also am Besten Rückwärtszählen und ggf. das selbe Element 2 mal anpacken oder nach jedem Entfernen den Zähler ensprechend wieder um eins verringern.

Link zu diesem Kommentar
Auf anderen Seiten teilen

oder man erstellt sich eine Kopie der Liste, geht diese durch und entfernt sie während dessen aus der eigentlichen Liste (Liste soll in dem Fall für jede beliebige Auflistung stehen, wie Array, LinkedList etc.)

allerdings dürfte das rückwärts durchgehen wohl das Beste sein, was man in dem Fall machen kann

dannoch interessiert es hier einige, wofür du denn so viele Buttons benötigst!

es gibt garantiert eine Möglichkeit, dein eigentliches Problem (nicht das mit den Buttons) anders (als mit Buttons) zu lösen

solange du das eigentlich Problem nicht nennst (und die vielen Buttons sind eine Lösung für dieses Problem, wenn auch nicht die richtige), können wir dir nicht helfen

es ist sinnvoll, nicht mit GDI oder GDI+ da ran zu gehen, da du sonst alles neu schreiben musst, was Windows.Forms bereits hergibt (vielleicht nicht ganz alles, aber ausreichend viel)

warum ist es beispielsweise nicht möglich, dass ein paar Buttons deaktiviert und wieder aktiviert werden?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich denke mal das es eine Art Touchscreen Kassensystem für die Gastronomie oder ähnlich sein kann.

Da währen die vielen Buttons eigentlich keine Verwunderung.

Und auch das regelmäßige neuaufbauen der Buttons wäre dadurch geklärt.

Wir selbst haben ein Kassensystem für die Gastronomie.

Da wählt man dann die Speisenkategorie und dann wird für jedes Gericht ein quadratischer Button mit passendem Label erzeugt (natürlich auch groß genug :) ). und dann eben noch ein Nummernfeld um die Anzahl der bestellten Artikel zu erfassen und ggf. noch die Tischnummer.

Ziemlich schlechte Bildqualität, aber so in etwa könnte das dann aussehn.

Klick mich

lg

Gateway

Link zu diesem Kommentar
Auf anderen Seiten teilen

auch etwas derartiges erfordert nicht, dass ständig auf dem gleichen Panel immer wieder Buttons entfernt und hinzugefügt werden müssen

besser ist es, die Buttons auf mehrere "Ansichten" (benuzerdefinierte Element, die von beispielsweise Panel abgeleitet sind) zu definieren, die diese Buttons besitzen

dann muss man nur noch die entsprechenden Ansichten initialisieren

zudem müssen diese ansichten nicht permanent neu initialisiert werden, da es reicht, immer nur die richtige Ansicht einzublenden

somit muss man nicht mehr (insgesamt) tausende, sondern nur noch ein paar hundert Buttons erzeugen (und keine mehr entsorgen)

ungefähr auf diese Art habe ich mit meinem ehemaligen Lehrgang ein Projekt realisiert (für dieses Design hat unser Dozent gesorgt)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...