从已在运行的后台任务进行进度更新

本文关键字:更新 后台任务 运行 | 更新日期: 2023-09-27 18:34:02

主应用如何从主应用启动时已在运行的后台任务获取进度通知?我已经注册了一个使用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();
    }
}
进度

条中正确报告进度。在应用程序开始时,我重新附加"已完成"和"进度"事件

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

但我想如果任务已经在运行,任务实例不会更新......

有什么建议吗?

从已在运行的后台任务进行进度更新

查看后台任务示例。 它完全可以完成您尝试执行的操作,并且更新得很好。