首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows8.1商店应用程序中调度定时后台任务

在Windows8.1商店应用程序中调度定时后台任务
EN

Stack Overflow用户
提问于 2013-12-30 06:41:38
回答 3查看 1.9K关注 0票数 0

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

该类的代码如下:

代码语言:javascript
复制
public class StringsDouble
{
    public string Sender {get; set;}

    public string Message {get; set;}

    public DateTime Time {get; set;}  
}

每次我的应用程序收到一条新消息。我更新列表,并存储为发送该消息的用户发送的最新消息的时间。

我想做的是,每5分钟,应用程序应该通过列表。

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

我怎样才能做到这一点?

我相信我需要使用一个背景任务,但是我如何安排它每5分钟运行一次?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-30 07:26:01

您可以在UI线程上使用DispatcherTimer

代码语言:javascript
复制
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromMinutes(5);
timer.Tick += (sender, e) =>
{
    //...
};
timer.Start();

或背景线程上的ThreadPoolTimer

代码语言:javascript
复制
ThreadPoolTimer threadPoolTimer = ThreadPoolTimer.CreatePeriodicTimer((source) =>
{
    //...            
}, TimeSpan.FromMinutes(5));
票数 1
EN

Stack Overflow用户

发布于 2013-12-31 13:10:47

没有办法每5分钟运行一次后台任务。

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

http://code.msdn.microsoft.com/windowsapps/Windows-8-Modern-Style-App-Samples

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

票数 1
EN

Stack Overflow用户

发布于 2014-03-08 09:01:52

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

https://developer.qualcomm.com/blog/windows-8-background-tasks-part-3-make-most-cpu-usage-quota

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20834600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档