2016-04-30 78 views
0

我想讓後臺任務在其任務結束時重新安排自己。但是當我去測試它似乎並沒有激活。該任務最初從前端成功運行。當我檢查生命週期事件後,我看到它的名字和兩個空白的。當我運行空白的它運行它,不知道我在做什麼導致它們。我嘗試用16分鐘的時間觸發器進行測試,但似乎並沒有再次運行。這是代碼:如何使後臺任務重新安排自己

var SleepyBand_TaskName = "DataHandlerTask"; 
foreach (var task in BackgroundTaskRegistration.AllTasks) 
{ 
    if (task.Value.Name == SleepyBand_TaskName) 
    { 
     task.Value.Unregister(true); 
    } 
} 
var builder = new BackgroundTaskBuilder(); 
var trigger = new TimeTrigger(16, false); 
builder.Name = SleepyBand_TaskName; 
builder.TaskEntryPoint = "SleepyBand_BackgroundTasks.DataHandlerTask"; 
builder.SetTrigger(trigger); 
builder.Register(); 

回答

1

TimeTrigger僅供lock-screen apps工作,這樣你就可以reshedule的任務。

在Windows中,後臺任務將只使用TimeTrigger如果你要求你的應用程序放置在鎖屏上,以RequestAccessAsync通話和用戶接受提示

你可以運行需要使用一個MaintenanceTrigger

+0

謝謝,我會這麼做的。 –

+0

@ Michael-PaulMoore如果有效,請不要忘記回來接受我的回答。如果你認爲這很好,你也可以投票。 –

0

eI只會使用System.Threading.Tasks.Task開始線程。如果你需要延遲使用這樣的

public void Test() { 
    Task.Run(() => DoSomething()); 
} 

private void DoSomething() { 
    //Do Something here.... 

    //Do Something again... 
    Task.Run(() => DoSomething()); 
} 

https://actionscheduler.codeplex.com/