在Windows 8.1商店应用程序中安排定时后台任务

时间:2013-12-30 06:41:39

标签: c# background-process windows-8.1

我有一个名为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分钟运行一次?

3 个答案:

答案 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