最近的工作需要在程序界面上显示实时的系统时间,网上查了查大部分都是用Timer或者线程来实现。
个人非常不喜欢用Timer,感觉这东西有点太耗资源,然后思考了下觉得更好的方法应该是使用异步的方法在委托中更新时间,比线程简单,效率和性能上又要比Timer好很多。
实现方法很简单啦,先定义一个DateTime属性,当然要实现INotifyPropertyChanged属性,以便前台绑定:
然后是异步方法,在适当的地方调用即可:
最后Xaml中绑定CurrentTime属性:
<TextBlock Text="{Binding CurrentTime,StringFormat={}{0:yyyy-MM-dd hh:mm:ss t\\\\M}}"/>
最终效果,还算可以: