qual é a diferença between System.Windows.Forms.Timer()
e System.Windows.Threading.DispatcherTimer()
? Em quais casos devemos usá-los? alguma prática recomendada?
Windows.Forms.Timer
usa o loop de mensagem do Windows Forms para processar eventos de cronômetro. Deve ser usado ao escrever eventos de temporização que estão sendo usados em aplicativos Windows Forms e você deseja que o temporizador seja acionado no thread de interface do usuário principal.
DispatcherTimer
é o mecanismo de temporização do WPF. Ele deve ser usado quando você deseja lidar com o tempo de maneira semelhante (embora isso não se limite a um único thread - cada thread tem seu próprio despachante) e está usando o WPF. Ele dispara o evento no mesmo encadeamento que o Dispatcher.
Em geral, WPF == DispatcherTimer
e Windows Forms == Forms.Timer
.
Dito isto, também System.Threading.Timer
existe um temporizador class
que dispara em um thread separado. Isso é bom para tempo puramente numérico, em que você não está tentando atualizar a IU, etc.
Encontrei um bom artigo sobre timers com pequenos exemplos aqui: http://www.progware.org/Blog/post/Timers-in-WPF.aspx
Como uma conclusão:
fonte