在特定时间运行后台任务 - Windows 10 App

Posted

技术标签:

【中文标题】在特定时间运行后台任务 - Windows 10 App【英文标题】:Run Background Task at specific time - Windows 10 App 【发布时间】:2015-08-26 23:25:56 【问题描述】:

我已经搜索了一种每天在特定时间运行后台任务的方法,例如12:00。

我使用 TimeTrigger 注册了 BackgroundTask,不幸的是,它在注册后立即启动。

builder.SetTrigger(new TimeTrigger(24 * 60, false));

有没有更简单的方法,然后每小时检查一次,如果这是一天中的正确时间?

【问题讨论】:

【参考方案1】:

Microsoft 似乎避免应用程序在精确的时间触发,但您可以通过计算从用户注册任务到 12:00 的分钟数来接近,然后从那里重新订阅另一个任务24*60 和你一样。我不确定 Microsoft 是否允许在后台任务中执行此操作,但值得一试。

计算任务到午夜的分钟数示例

var tommorowMidnight = DateTime.Today.AddDays(1);
var timeTilMidnight = tommorowMidnight - DateTime.Now;
var minutesTilMidnight = (uint)timeTilMidnight.TotalMinutes;
builder.SetTrigger(new TimeTrigger(minutesTilMidnight, true));

【讨论】:

这听起来很有趣,我会试试看。 这实际上不止一次有效吗?我认为新鲜时间是某事发生的频率,而不是它发生的时间。所以说现在是上午 10:30,我想在 12:00 运行一项任务,我可以计算出 12:00 距离 90 分钟。除了据我所知,任务将运行 90 分钟,而不是每天 12:00 ???【参考方案2】:

我之前使用过这个任务包装器来创建类似的东西,并且它每天都会触发。也许这就是你要找的。​​p>

http://taskscheduler.codeplex.com/

【讨论】:

这是否也适用于 Windows 10 应用程序?我认为它只支持桌面应用程序。

以上是关于在特定时间运行后台任务 - Windows 10 App的主要内容,如果未能解决你的问题,请参考以下文章

可以运行 2 个后台任务 - Windows Phone 8.1 通用应用程序?

用于获取通知的通用 Windows 10 应用后台任务计时器

背水一战 Windows 10 (121) - 后台任务: 推送通知

Windows Phone 8.1 后台任务 - 无法调试且不会触发

在 Windows XP 中打开特定应用程序时运行 bat 文件

我启动windows任务管理器,发现有的程序明明没有运行,但是在进程里还是会有不少的程序?是后台吗?