2011-09-23 13 views
7

OK consente di visualizzarlo, durante il rendering e un passaggio di layout un'interfaccia utente WPF si bloccherà ....Previene il congelamento durante la ricostruzione dell'interfaccia utente WPF complessa?

Qualsiasi fuga da questo?

Qualcuno ha parlato di XAML serializzazione e Desrialization ma funziona davvero? Tutto quello che vedo è un intervallo momentaneo e una finestra congelata per interfacce utente complesse che sono deserializzate.

Sarò mai in grado di raggiungere una rapida UI di carico?

P.S. Non sto parlando di caricare i dati della vista su thread in background e cose del genere. È comunque una norma ora a un giorno. Ma c'è ANY (questo dovrebbe sembrare disperato) come non produrre una finestra appesa per interfacce utente complesse? Per complesso intendo stili pesanti, modelli profondamente gerarchici, pannelli non virtualizzati ecc.

+1

Hai capito solo in Visual Studio? Per me Visual Studio si blocca alcune volte ma l'exe è piuttosto solido. Visual Studio SP1 ha aiutato molto. Aiuta anche una macchina multiprocessore. Per quanto mi riguarda sembra che appaia costruendo l'albero visivo alcune volte. Se XAML ha un nome di bind non valido sembra che si ottengano più blocchi. Ma se lo lascio riposare per 1-5 minuti, funziona. Il 90% delle volte verrà caricato in 2-5 secondi. Non esco mai da pagine di un progetto che non sto usando. – Paparazzi

+0

Che dire dell'utilizzo della classe Dispatcher con la priorità bassa 'Sfondo'? – vorrtex

+0

hmmm ... probabilmente sono così disperato perché odio ammettere che trovo che winform non si blocchi per interfacce utente complesse (tenendo da parte il caricamento dei dati). :( –

risposta

2

Data la fabula della tua domanda, ti aspetti una risposta almeno da Rob Relyea (non so se è ancora in). Vorrei avere una proprietà PreventFreezing, impostata da qualcuno piuttosto incautamente al falso. Ma non lo siamo. Penso che l'unico modo per esaminare il problema sia quello di esaminarlo caso per caso. Alcune strutture, ad esempio Prism e simili sipmly, non sono progettate per supportare l'esecuzione regolare, ed è chiaramente indicato nella descrizione.

Dopo 5+ anni di trattare con WPF/SL ho ancora la sensazione che stiamo tutti lavorando con un prototipo, ben progettato, ma ancora un prototipo. Molte cose sono progettate bene, ma progettate per non rispettare mai le scadenze delle prestazioni.

credo, che 'L'aggiunta di futuri w/out preoccuparsi troppo di qualsiasi altra cosa' è una fase molto naturale in un ciclo di vita di qualsiasi grande probject. Durante questa fase il numero di future cresce espotenzialmente, quindi il debito tecnico lo fa. Questa è tutta roba buona finché viene seguita dal rimborso tecnico del debito, che non sembra accadere con WPF -i.e. revisione delle prestazioni, revisione della usabilità della sintassi e altro.

+0

* Modificato * commento al posto sbagliato - mi spiace –

+0

Sì, WPF si sente decisamente come una bozza di concetto piuttosto dettagliata piuttosto che una struttura rifinita e rifinita. –

Problemi correlati