2012-05-01 20 views
6

Ich verwende derzeit DevExpress-Steuerelemente in einer Anwendung. Die Steuerung ist großartig und beschleunigt die Entwicklungszeit dramatisch (und daher würde ich sie nicht ablegen wollen), aber ich habe ein paar Probleme mit ihrer Leistung.Leistungssteigerung von WPF-Steuerelementen zum Laden von Ressourcen

Meine Anwendung ist eine Shell/Module/Ansichten & ViewModels Anwendung (es folgt eine Menge der Design-Muster, die Sie in Prism finden würden).

Wenn eine Ansicht zuerst geladen wird, dauert es sehr lange, bis sie angezeigt wird (bei einigen meiner Benutzer PCs mit langsamen Maschinen sprechen wir über 5 Sekunden, wenn wir gerade dort hängen). Die benötigte Zeit hängt offenbar von der Verwendung von DX-Steuerelementen ab (wie viele dort sind, die vorher von der Anwendung nicht gesehen wurden).

Wenn Sie die Ansicht zerstören und erneut öffnen, wird sie in weniger als einer Sekunde geöffnet. Das ViewModel in meinen Testfällen/Leistungsprofilen wurde jedes Mal neu erstellt - also gibt es keinen gemeinsamen Status innerhalb meines Codes zwischen Aufrufen der Ansicht (keine Singleton-injizierten Objekte).

Nach ein paar Diskussionen und Nachforschungen scheint ich das Problem auf das On-Demand-Laden der Vorlagendateien für die DX-Steuerungen beschränkt zu haben. Es ist ein Thread hier darüber: http://www.devexpress.com/Support/Center/Issues/ViewIssue.aspx?issueid=Q382256 welche Hinweise: http://www.devexpress.com/Support/Center/p/B201967.aspx & DevExpress controls for WPF load time Die Lösung in diesen Fäden beschrieben ist, entweder in eine Ladeanzeige angezeigt werden oder ein verstecktes Fenster mit den Kontrollen auf mich bei der Inbetriebnahme zu verwenden. Keine dieser Optionen ist etwas, was ich gerne tun würde (und die Option für das ausgeblendete Fenster schien nicht sehr leistungsfähig zu sein, wenn ich ein interessantes Beispiel versuchte - was auch darauf hindeutet, dass ich etwas vermisse).

Was ich zu tun hoffe, ist das Vorladen von Vorlagendateien, von denen ich weiß, dass ich sie in einem Hintergrund-Thread brauche. Gibt es eine Möglichkeit, dies in WPF zu tun? (Ich denke, das ist eher eine allgemeine WPF-Sache als eine DevExpress-Sache - auch wenn es etwas ist, das in den DX-Bibliotheken selbst implementiert werden muss).

Irgendwelche Ideen für mich oder die Jungs bei DevExpress?

+0

Im Allgemeinen müssen Sie WPF UI-Steuerelemente auf dem UI-Thread erstellen, so dass Sie das gleiche für die DX-Vorlagen finden können ... –

+1

Hallo David hast du dein Problem am Ende gelöst? – baalazamon

Antwort

0

Im Hintergrundthread können Sie alle erforderlichen Assemblies vorab laden. Stellen Sie auch sicher, dass sie ngeded sind. Die UI-Steuerelemente müssen über den UI-Thread initialisiert werden.

Verwandte Themen