我有一个名为Messages的StringsDouble列表。
该课程的代码如下:
public class StringsDouble
{
public string Sender {get; set;}
public string Message {get; set;}
public DateTime Time {get; set;}
}
每次我的应用收到新消息。我更新了List,并存储了发送该消息的用户发送的最新消息的时间。
我想要做的是,每5分钟应用程序应该通过列表。
并且对于列表中的每个项目,它应该获取time属性并获取当前系统时间,并检查差异是否超过30分钟。如果是,则应从列表中删除该项目。
我怎样才能做到这一点?
我相信我需要使用后台任务,但我如何安排它每5分钟运行一次?
答案 0 :(得分:1)
您可以在UI线程上使用DispatcherTimer
:
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromMinutes(5);
timer.Tick += (sender, e) =>
{
//...
};
timer.Start();
后台线程上的或ThreadPoolTimer
:
ThreadPoolTimer threadPoolTimer = ThreadPoolTimer.CreatePeriodicTimer((source) =>
{
//...
}, TimeSpan.FromMinutes(5));
答案 1 :(得分:1)
无法每5分钟运行一次后台任务。
也许推送通知可以帮到你?它有一个你可以猜到的价格,但你可以随时随地发送它们。
http://code.msdn.microsoft.com/windowsapps/Windows-8-Modern-Style-App-Samples
您可以下载这些示例,也有推送通知的示例代码。
答案 2 :(得分:0)
此链接(带代码)似乎表明您可以每隔15分钟展开分配给应用程序的2秒CPU。因此,您可以比每15分钟更频繁地在后台任务中运行一些代码:
https://developer.qualcomm.com/blog/windows-8-background-tasks-part-3-make-most-cpu-usage-quota