【发布时间】:2015-08-20 07:21:11
【问题描述】:
我有一个 CreateSchedule() 函数,它在我打开应用程序时执行。
private async static Task<int> CreateSchedule()
{
try
{
DateTime now = DateTime.Now;
DateTime planTill = now.AddMinutes(15);
do
{
await DoSomeWork();
now = DateTime.Now;
await Task.Delay(TimeSpan.FromSeconds(5));
} while (now < planTill);
return 1;
}
catch (Exception ex)
{
Debug.WriteLine(ex);
return 0;
}
}
当应用程序处于活动状态或前台状态时,此函数会连续运行(我使用过 do-while 循环)。但是当我在 WP 上最小化或按下返回或开始按钮时,此功能将不再执行。
那么,即使应用程序被最小化或按下“开始”或“后退”按钮,是否有任何方法可以连续执行该功能。
我曾尝试使用 BackgroundTask,但这似乎只在注册后 0-15 分钟内执行,这不是我的要求。
如果有我们可以在 Windows Phone 后台运行的线程,请提出一些建议。
提前致谢!
【问题讨论】:
-
您要究竟做什么?
-
嗨,Shawn,我正在尝试在 WP 8.1 上注册后立即启动后台任务。但它似乎没有这样做。因此,我正在寻找其他一些方法来运行后台线程并使其继续运行,即使应用程序已最小化。
-
正如@kristian 所说,当您的应用程序最小化时,您无法永远运行代码。您也无法在后台启动后台任务。但是,您可以创建任务实例并调用 run 方法。或者将代码提取到一个通用的核心类中。
标签: c# windows windows-phone-8.1 windows-phone microsoft-metro