簡體   English   中英

已運行BackgroundTask的進度更新?

[英]Progress update from already running BackgroundTask?

當主應用程序啟動時,主應用程序如何從已經運行的后台任務中獲取進度通知? 我已經注冊了一個由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不會更新...

有什么建議么 ?

看一下后台任務示例 它確實可以完成您的嘗試,並且可以正常更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM