我有一个天气应用程序,可以在后台任务中定期更新天气。在我的应用程序上运行Windows App认证工具包时,它无法通过后台任务取消测试。
我阅读了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;
}
调用TaskInstance_Canceled时,如何停止执行OnBackgroundActivated方法内的代码?如果是循环,我会用while,但这只是一大段代码,只能执行一次。
我是否需要在每一行代码中检查(_CancelRequested == true)? 这似乎是一个非常简单的解决方案,所以肯定有更好的方法。或者,也许,我在这里显然做错了。
答案 0 :(得分:2)
每条等待的语句后,我都会检查CancelRequested状态。