我正在与C#中的MVVM和WPF进行斗争。我想要创建一个数据集,它显示一个ObservableCollection,它存储事件发生的名称和时间。这个数据集和ObservableCollection应该在特定的时间(上午10:30,下午2点,下午6点和凌晨2点)空置,并开始收集新的事件列表。
我试图不使用计时器作业(我读到它们消耗资源)。是否可以在每次发生新事件时检查该事件,并视时间而定,要么清空ObservableCollection,要么将该事件添加到当前的O.C列表?
例如:如果时间正好是上午10:30或下午2点或下午6点或2点:首先清空ObservableCollection,然后在ObservableCollection中输入新事件。
如果时间是在上午10:30或下午2点或下午6点或凌晨2点之后,但ObservableCollection尚未清空(因为在这些时间没有发生任何事件),即这是在“清空时间”之后发生的第一个事件:首先-清空ObservableCollection,然后在ObservableCollection中输入新事件。
否则,只需在ObservableCollection中输入新事件(因为ObservableCollection已经清空,因为它不是在“清空时间”之后发生的第一个事件)。
发布于 2015-08-20 18:24:19
我不知道这是否是最有效的方法,但这可能是一个合理的方法。我也不知道您的应用程序是什么(如果它是一个Web应用程序),但是如果它是一个WPF/MVVM应用程序,当您需要计时器启动时,计算下一个时间间隔是什么时候(因此,如果您启动应用程序和系统时钟,如果它是可以使用的,那么它是上午9:21,下一个时间间隔是上午10:30 )。
然后,启动一个将在下一个时间间隔超时的计时器,然后实现计时器回调委托,以便在该间隔内执行您需要做的任何事情。
如果您使用的是.NET 4.5,请看这里
https://stackoverflow.com/questions/32120779
复制相似问题