C# 在windows 8.1应用商店中计划定时后台任务

C# 在windows 8.1应用商店中计划定时后台任务,c#,background-process,windows-8.1,C#,Background Process,Windows 8.1,我有一个名为消息的StringsDouble列表 该类的代码如下所示: public class StringsDouble { public string Sender {get; set;} public string Message {get; set;} public DateTime Time {get; set;} } 每次我的应用程序收到新消息时。我更新列表,并为发送该消息的用户存储最近发送消息的时间 我想做的是,每5分钟应用程序都应该浏览列表 对

我有一个名为消息的StringsDouble列表

该类的代码如下所示:

public class StringsDouble
{
    public string Sender {get; set;}

    public string Message {get; set;}

    public DateTime Time {get; set;}  
}
每次我的应用程序收到新消息时。我更新列表,并为发送该消息的用户存储最近发送消息的时间

我想做的是,每5分钟应用程序都应该浏览列表

对于列表中的每个项目,它都应该获得time属性和当前系统时间,并检查差异是否超过30分钟。如果是,则应从列表中删除该项

我怎样才能做到这一点


我认为我需要使用后台任务,但如何安排它每5分钟运行一次?

您可以在UI线程上使用
Dispatcher

DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromMinutes(5);
timer.Tick += (sender, e) =>
{
    //...
};
timer.Start();
或后台线程上的
ThreadPoolTimer

ThreadPoolTimer threadPoolTimer = ThreadPoolTimer.CreatePeriodicTimer((source) =>
{
    //...            
}, TimeSpan.FromMinutes(5));

没有办法每5分钟运行一次背景任务

也许推送通知可以帮助你?它有一个价格,你可以猜测,但你可以发送他们任何时间,任何频率

您可以下载这些示例,还有一个推送通知示例代码。

此链接(带代码)似乎建议您可以每隔15分钟分配给应用程序的2秒CPU。因此,您可以在后台任务中比每15分钟更频繁地运行一些代码: