1

主应用程序如何从主应用程序启动时已经运行的后台任务获取进度通知?我已经注册了一个由 a 触发的后台任务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 回答