Он должен работать точно так, как вы описали: если исключение выбрано в IBackgroundTask
Run
, метод BackgroundTaskCompletedArguments.CheckResult()
выдает исключение, когда вы его вызываете.
Убедитесь, что ваша фоновая задача действительно запущена и что ваше приложение находится на переднем плане, иначе IBackgroundTaskRegistration.Completed
событие вообще не создано.
Если вы хотите попробовать его на рабочий exaple, скачать Background task sample и сделать две модификации к нему:
- В
Task\ServicingComplete.cs
добавить throw new Exception();
в самом конце Run
метода.
- В
BackgroundTask\ServicingCompleteTask.xaml.cs
добавить args.CheckResult();
в начале OnCompleted
метод.
Если теперь запустить приложение, зарегистрировать задачу из пользовательского интерфейса и вызвать его из Debug Location
панели инструментов Visual Studio, когда приложение находится на переднем плане, вы заметите, что CheckResult()
вызов будет сгенерировано исключение, как и ожидалось.