Ho un pulsante di dialogo di avvio che crea un modello di vista di una finestra e lo associa alla finestra (sta abilitando la virutalizzazione dell'interfaccia utente). Ci vuole solo 1 secondo per avviare la finestra di dialogo al primo clic. Ma se apro la stessa finestra di dialogo molto frequentemente o di seguito, inizia a impiegare più tempo nel popolamento dell'origine dati della griglia per l'iterazione successiva. se faccio qualche pausa, poi di nuovo apri la finestra, poi ci vogliono solo circa 1 o 2 secondi.Prestazioni relative alle prestazioni durante l'apertura ripetuta di una finestra di dialogo nel wpf
for first time populating the item source it take only 1 second:
next time populating the item source it takes 2 second
next time populating the item source it takes 3 second
next time populating the item source it takes 6 second
next time populating the item source it takes 8 second
Tuttavia, se chiamo GC.Collect() che non è consigliato, poi popolare origine dati griglia richiede sempre circa 1 secondo. ma chiamando di
Gc.Collect()
Gc.WaitForPendingFinalizer()
Gc.Collect()
mi è costato un po 'di tempo per ogni iterazione.
So che chiamare GC.Collect
non è una buona opzione. Qualcuno può suggerire come posso aumentare le prestazioni delle mie applicazioni.
Sono più preoccupato per il computer dell'utente in quanto la mia macchina è dotata di una configurazione molto buona, mentre la macchina dell'utente potrebbe non essere così veloce.
Perché è necessario più tempo per aprire la finestra di dialogo ogni volta? Forse stai caricando troppi dati. Considera di [utilizzare il paging] (http://stackoverflow.com/questions/784726/how-can-i-paginate-a-wpf-datagrid) (nella griglia e nella query sql). –
Forse hai bisogno di '.Dispose' di alcune risorse prima di chiudere la finestra di dialogo? –
Tim, anche io non capisco. Probabilmente mi manca qualcosa ma non so cosa.Così per cercare possibili errori –