2016-04-30 26 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/