Non ho in mente uno scenario specifico, ma questa domanda mi è passata per la mente mentre pensavo a scenari in cui potrei voler usare un Timer su un DispatcherTimer.Prestazioni per Timer vs DispatcherTimer
Nello scenario in cui devo eseguire venire computazionalmente compito molto ogni volta che un timer generato l'evento, e quindi rendono minori modifiche UI, sarebbe meglio in termini di prestazioni:
- uso un regolare Timer e quindi utilizzare Dispatcher dell'applicazione su cambiare l'interfaccia utente
- utilizzare un DispatcherTimer (e possibilmente eseguire il mio lavoro di computazione su in alcuni operatori asincroni in background, se necessario).
La mia ipotesi è che mantenere il thread dell'interfaccia utente sbloccato il più a lungo possibile migliorerà l'esperienza dell'utente. Se questo è consigliabile, ci sono delle catture che dovrei essere a conoscenza in uno scenario del genere?
EDIT:
ho la sensazione mia domanda non era abbastanza chiaro, quindi ho intenzione di cercare di aggiungere un concreto, seppur esempio truccata.
Diciamo che devo leggere un file di grandi dimensioni ogni 2 minuti, e quando ho finito, devo aggiungere un elemento a un ListBox. Diciamo che leggere/elaborare il file richiede 10-15 secondi, durante i quali non faccio funzionare l'interfaccia utente. Quale sarebbe l'approccio migliore per qualcosa di simile?
Forse dovrei chiarire la mia domanda, ma so già che un timer gira su un thread separato, e che in questo caso è richiesto a un Dispatcher di toccare l'interfaccia utente. Ero più curioso di sapere quando valesse la pena usare un Timer in un'applicazione WPF anche quando devo toccare l'interfaccia utente. –