BackgroundTaskCompletedEventArgs.CheckResult什么时候抛出异常?

时间:2013-03-23 05:47:09

标签: windows-runtime windows-store-apps

BackgroundTaskCompletedEventArgs.CheckResult的文档说:

  

如果后台任务已完成事件报告错误,则抛出异常。

我尝试过后台任务在其Run方法中抛出异常,但是当我订阅它的Completed事件并在完成时调用CheckResult时,没有例外是抛出。

CheckResult什么时候实际抛出异常?

1 个答案:

答案 0 :(得分:1)

它应该完全按照您的描述工作:如果在IBackgroundTask的{​​{1}}方法中抛出异常,则Run方法在您调用它时会抛出异常。

确保您的后台任务实际运行且您的应用处于前台,否则BackgroundTaskCompletedArguments.CheckResult()事件根本不会被提升。

如果您想在工作中尝试一下,请下载Background task sample并对其进行两处修改:

  • IBackgroundTaskRegistration.Completed方法的最后Task\ServicingComplete.cs添加throw new Exception();
  • Run方法的开头BackgroundTask\ServicingCompleteTask.xaml.cs添加args.CheckResult();

如果您现在运行应用程序,请从UI注册任务并在应用程序位于前台时从Visual Studio的OnCompleted工具栏触发该任务,您会注意到Debug Location调用将引发异常如预期的那样。