Я выполняю фоновое задание для своего приложения для Windows Store (приложение Win 8.1). Я написал очень простой тестовый класс, зарегистрировал его, запросил для доступа, но когда я решил отладить задачу с панели инструментов отладки, ничего не происходит. Я также ждал 15 минут несколько раз сегодня, и он ничего не выводит. Тем не менее, он показывает (с точки зрения кода), что задача зарегистрирована, и я не получаю никаких генерируемых исключений.Windows RT - фоновая задача не запускается
Предыстория Задача:
public sealed class BGFunMessage : IBackgroundTask
{
public void Run(IBackgroundTaskInstance taskInstance)
{
Debug.WriteLine("Background " + taskInstance.Task.Name + " Starting...");
}
}
Регистр Класс:
public class RegisterWorkers
{
public static async void Run()
{
var taskRegistered = false;
var taskName = "BGFunMessage";
BackgroundTaskRegistration bTask = null;
foreach (var task in BackgroundTaskRegistration.AllTasks)
{
if (task.Value.Name == taskName)
{
//taskRegistered = true;
bTask = (BackgroundTaskRegistration)(task.Value);
bTask.Unregister(true);
break;
}
}
if (!taskRegistered)
{
string entryPoint = typeof(BGFunMessage).FullName;
bTask = RegisterBackgroundTask(entryPoint, taskName);
}
}
public static BackgroundTaskRegistration RegisterBackgroundTask(string taskEntryPoint, string name)
{
var builder = new BackgroundTaskBuilder();
builder.Name = name;
builder.TaskEntryPoint = taskEntryPoint;
builder.SetTrigger(new TimeTrigger(15, false));
BackgroundTaskRegistration task = null;
try
{
task = builder.Register();
}
catch (Exception ex)
{
LiveLog.WriteException(ex, LogType.WARNING);
}
return task;
}
}
Как вызвать из страницы в моем приложении:
RegisterWorkers.Run();
Я попытался следующие нескольких учебных пособий , что все в основном говорят то же самое. Я также использую образцы MSDN, загруженные из GitHub, и я не вижу ничего на поверхности, что делает их код отличным от моего (кроме того, что их метод Register возвращает задачу <>). Я могу отлаживать исходные задачи проекта проекта, но не свой. Что-то я здесь делаю неправильно? Благодарю.