7

私のバックグラウンドタスクが機能していない/トリガーされていないように思えます。それらをデバッグしたり、統合テストでテストしたりする方法はありますか?

これはバックグラウンドタスクの例です。


public sealed class MyBackgroundTask : IBackgroundTask
{
 private ITileService _tileService;

 //Tried a parameter-less constructor in case IoC doesn't work
 public MyBackgroundTask() : this(new TileService)  {}

 public MyBackgroundTask(ITileService tileService)
 {
     _tileService = tileservice;
 }

        public async void Run(IBackgroundTaskInstance taskInstance)
        {
            Debug.WriteLine("MyBackgroundTask is running " + taskInstance.Task.Name );
            taskInstance.Canceled += TaskInstanceOnCanceled;
            if (!_cancelRequest && SomeOtherCondition)
            {
                var deferral = taskInstance.GetDeferral(); 
                await _tileService.UpdateLiveTile(null);
                deferral.Complete();
            }
        }
}

バックグラウンドタスクの登録:(このコードは実行され、デバッガーでチェックされます)


var backgroundTaskBuilder = new BackgroundTaskBuilder
                                                {
                                                    TaskEntryPoint =
                                                        "MyNamespace.MyBackgroundTask",
                                                    Name = "MyBackgroundTask"
                                                };

                backgroundTaskBuilder.SetTrigger(new MaintenanceTrigger(15, false));
                backgroundTaskBuilder.AddCondition(new SystemCondition(SystemConditionType.InternetAvailable));
                backgroundTaskBuilder.Register();

アプリマニフェストで、次のエントリポイントBackgroundTaskを使用して新しいものを定義しました。System EventMyNamespace.MyBackgroundTask

注:バックグラウンドタスクは、アプリとは別のアセンブリにあります(バックエンド/フロントエンドの分離)

4

0 に答える 0