Langsamer Form-Aufbau: (User)Controls zur Runtime schneller laden

19/06/2008 - 16:58 von Tobias Klotz | Report spam
Hallo,

generelle wundert mich beim .Net der langsame Bildaufbau (die
Window-Aktualisierung), alleine nur wenn man mit einem anderen Fenster über
ein Windows-Form fàhrt, irritiert der tw. sehr lahme Fenster(wieder)aufbau.

Wenn man nun Controls dynamisch zur Laufzeit erzeugt, dauert das nochmal
lànger (wobei das erzeugen schnell geht, aber im OnPaint/ beim eigentlichen
Visible-Wechsel) dauert das echt lange.

Ich hab schon alles mögliche probiert (Begin/EndUpdate dort wo es das gibt,
PerformLayout/ SuspendLayout usw auf unterschiedlichen und tw. sehr schnellen
Rechnern).

Hab ich hier irgendwo einen grundlegenden Hund oder Denkfehler drin?
Irgendwie kann ich mir nicht vorstellen, dass jedes .NET Windows Forms
Programm so "flackernd" agiert (eben alleine auch nur, wenn man über ein
statisch konstruiertes Fenster ein anderes drüberzieht).

Ich wàre sehr dankbar für ein paar Ideen/ Hinweise,
lg aus Wien
Tobi
 

Lesen sie die antworten

#1 Alexander Schmidt
20/06/2008 - 02:10 | Warnen spam
Hi Tobias,

ich kàmpfe nun seit Jahren mit diesem Thema und habe bislang nur folgendes
für mich selbst erreicht:

1. Signiere die Assembly mit den Forms.
2. Erstelle einen Release-Build.
3. Führe gacutil aus und füge die Assembly dem GAC hinzu.
4. Führe ngen aus und generiere ein native image.
5. Starte Deine EXE.

Das wars. Ansonsten vermeide im Code lange Aufrufe in den Methoden vor dem
Zeigen, wie z.B. Load().

Ein wenig Hoffnung macht mir folgendes:

http://msdn.microsoft.com/de-de/vst...s/cc533447(en-us).aspx

Mal schauen, was das wirklich bringt.

BTW: Ich habe solche Fragen vor Jahren in anderen NGs und Foren gestellt
und immer wieder Kopfschütteln geerntet. Das Thema ist wohl eines, das gern
subjektiv unterschiedlich wahrgenommen wird!

HTH und Gruß,
Alexander Schmidt

Hallo,

generelle wundert mich beim .Net der langsame Bildaufbau (die
Window-Aktualisierung), alleine nur wenn man mit einem anderen Fenster
über ein Windows-Form fàhrt, irritiert der tw. sehr lahme
Fenster(wieder)aufbau.

Wenn man nun Controls dynamisch zur Laufzeit erzeugt, dauert das
nochmal lànger (wobei das erzeugen schnell geht, aber im OnPaint/ beim
eigentlichen Visible-Wechsel) dauert das echt lange.

Ich hab schon alles mögliche probiert (Begin/EndUpdate dort wo es das
gibt, PerformLayout/ SuspendLayout usw auf unterschiedlichen und tw.
sehr schnellen Rechnern).

Hab ich hier irgendwo einen grundlegenden Hund oder Denkfehler drin?
Irgendwie kann ich mir nicht vorstellen, dass jedes .NET Windows Forms
Programm so "flackernd" agiert (eben alleine auch nur, wenn man über
ein statisch konstruiertes Fenster ein anderes drüberzieht).

Ich wàre sehr dankbar für ein paar Ideen/ Hinweise,
lg aus Wien
Tobi

Ähnliche fragen