Laufzeitprobleme beim dynamischen laden von Controls

30/09/2008 - 16:05 von Thomas | Report spam
Hallo,
ich lade zur Laufzeit Controls.
Das geht auch alles sehr gut.
Nun habe ich jedoch sehr viele Controls, welche ich dynamisch nachladen muss
Wenn ich 1000 Controls lade geht das 12 Sekunden.
Die nàchsten 1000 gehen eine Minute
die nàchsten 1000 gehen ca. 4 Minuten.
Kann man das irgendwie beschleunigen?

Ich habe folgende Schleife:

for (int i = 0; i < 1000; i++)
{

AnzahlButton += 1;
NameButton = AnzahlButton.ToString();
Button cmdButton = new Button();
cmdButton.Name = NameButton;
cmdButton.Text = "b1" + LetzterTop.ToString();
cmdButton.Left = 10;
cmdButton.Top = LetzterTop;
LetzterTop += 50;
//this.Controls.Add(cmdButton);
//this.splitContainer1.Panel2.Controls.Add(cmdButton);
this.flowLayoutPanel1.Controls.Add(cmdButton);
this.flowLayoutPanel1.SetFlowBreak(cmdButton, true);
cmdButton.Click += new
System.EventHandler(this.DynamischerButton_Click);

}

Gruß
Thomas
 

Lesen sie die antworten

#1 Frank Dzaebel
30/09/2008 - 17:21 | Warnen spam
Hallo Thomas,

ich lade zur Laufzeit Controls.
Das geht auch alles sehr gut.
Nun habe ich jedoch sehr viele Controls,
[...] Kann man das irgendwie beschleunigen?



es ist eigentlich nicht "best practice"
so viele Controls gleichzeitig in
ein ParentControl zu laden.
Hàufig kannst Du über:

"Anzeige bei Erforderlichkeit"
"show on demand"

eine Lösung finden. Beim DataGridView
oder ListView ist das zum Beispiel über den
VirtualMode extremst performant gestaltbar.

[Nutzung grosser Datenmengen beim DataGridView]
http://dzaebel.net/DgvVirtual.htm

[ListView.VirtualMode-Eigenschaft (System.Windows.Forms)]
http://msdn.microsoft.com/de-de/lib...lmode.aspx

Aber auch die Standard-Tipps (ganz grob) :

[Performance bei Windows-Forms-Anwendungen]
http://www.microsoft.com/germany/ms...ungen.mspx

Übersetzt aus:
[Practical Tips For Boosting The Performance Of Windows Forms Apps]
http://msdn.microsoft.com/msdnmag/i...rformance/

[CLR Inside Out: Die Leistungsvorteile durch NGen -- MSDN Magazine,
May
2006]
http://msdn.microsoft.com/msdnmag/i...spx?loc=de

[Improve Windows Forms performance - Developer Pills]
http://bloggingabout.net/blogs/adel...mance.aspx

[site:windowsclient.net Performance ]
http://www.google.de/search?hl=de&a...ogle-Suche

[Der Caching Application Block der Enterprise Library 1.0 im Detail]
http://dotnet-magazin.de/itr/online...id,31.html

sind ggf. wirksam.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen