我有一个名为StringsDouble的消息列表。
该类的代码如下:
public class StringsDouble
{
public string Sender {get; set;}
public string Message {get; set;}
public DateTime Time {get; set;}
}每次我的应用程序收到一条新消息。我更新列表,并存储为发送该消息的用户发送的最新消息的时间。
我想做的是,每5分钟,应用程序应该通过列表。
对于列表中的每一项,它都应该获得时间属性和当前系统时间,并检查差异是否超过30分钟。如果是,它应从清单中删除该项目。
我怎样才能做到这一点?
我相信我需要使用一个背景任务,但是我如何安排它每5分钟运行一次?
发布于 2013-12-30 07:26:01
您可以在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));发布于 2013-12-31 13:10:47
没有办法每5分钟运行一次后台任务。
也许推送通知对你有帮助?它有一个价格,你可以猜测,但你可以随时发送,任何频率。
http://code.msdn.microsoft.com/windowsapps/Windows-8-Modern-Style-App-Samples
您可以下载这些示例,也有一个推送通知的示例代码。
发布于 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
https://stackoverflow.com/questions/20834600
复制相似问题