У меня есть приложение погоды, которое периодически обновляет погоду в фоновом режиме.Когда я запускаю Windows App Certification Kit в своем приложении, он не проходит тест отмены фоновой задачи.
Я читаю официальную документацию Microsoft.Я реализовал BackgroundTaskCanceledHandler.Вот код.
volatile bool _CancelRequested = false;
protected async override void OnBackgroundActivated(BackgroundActivatedEventArgs args)
{
args.TaskInstance.Canceled += new BackgroundTaskCanceledEventHandler(TaskInstance_Canceled);
// update weather tile
}
private void TaskInstance_Canceled(IBackgroundTaskInstance sender, BackgroundTaskCancellationReason reason)
{
_CancelRequested = true;
}
Как остановить выполнение кода внутри метода OnBackgroundActivation при вызове TaskInstance_Canceled?Если бы это был цикл, я бы использовал while, но это просто большой кусок кода, который выполняется только один раз.
Нужно ли проверять, есть ли (_CancelRequested == true) в каждой строке кода?Это кажется очень нелегким решением, так что определенно должен быть лучший способ ... Или, возможно, я здесь явно что-то делаю не так.