1

メイン アプリは、メイン アプリの起動時に既に実行されているバックグラウンド タスクから進捗通知を取得するにはどうすればよいですか? SystemTriggerType.TimeZoneChange(簡単にするために)でトリガーされるバックグラウンド タスクを登録しました。コードは次のとおりです。

public sealed class Class1:IBackgroundTask
{
    public async void Run(IBackgroundTaskInstance taskInstance)
    {
        var defferal = taskInstance.GetDeferral();
        await Task.Delay(3000);
        for (uint i = 1; i < 100; i++)
        {
            await Task.Delay(1000);
            taskInstance.Progress = i;
        }
        defferal.Complete();
    }
}

進行状況は進行状況バーに正しく報告されます。アプリの開始時に、Completed および Progress イベントを再アタッチします

foreach (var i in BackgroundTaskRegistration.AllTasks)
{
   i.Value.Completed += task_Completed;
   i.Value.Progress += task_Progress;
}

しかし、タスクが既に実行されている場合、taskInstance は更新されないと思います...

助言がありますか ?

4

1 に答える 1

1

バックグラウンド タスクのサンプルをご覧ください。それはあなたがやろうとしていることを正確に行い、うまく更新しています。

于 2012-08-21T21:38:14.260 に答える