C# 调试后台任务
在我看来,我的后台任务没有工作/触发。是否有任何方法可以调试它们,或使用集成测试进行测试。 这是一个示例后台任务:C# 调试后台任务,c#,windows-runtime,live-tile,C#,Windows Runtime,Live Tile,在我看来,我的后台任务没有工作/触发。是否有任何方法可以调试它们,或使用集成测试进行测试。 这是一个示例后台任务: public sealed class MyBackgroundTask : IBackgroundTask { private ITileService _tileService; //Tried a parameter-less constructor in case IoC doesn't work public MyBackgroundTask() : this(
public sealed class MyBackgroundTask : IBackgroundTask
{
private ITileService _tileService;
//Tried a parameter-less constructor in case IoC doesn't work
public MyBackgroundTask() : this(new TileService) {}
public MyBackgroundTask(ITileService tileService)
{
_tileService = tileservice;
}
public async void Run(IBackgroundTaskInstance taskInstance)
{
Debug.WriteLine("MyBackgroundTask is running " + taskInstance.Task.Name );
taskInstance.Canceled += TaskInstanceOnCanceled;
if (!_cancelRequest && SomeOtherCondition)
{
var deferral = taskInstance.GetDeferral();
await _tileService.UpdateLiveTile(null);
deferral.Complete();
}
}
}
后台任务的注册:
(此代码运行,通过调试器检查)
在应用程序清单中,我定义了一个新的BackgroundTask
,带有系统事件和以下入口点:MyNamespace.MyBackgroundTask
注:
后台任务与应用程序位于不同的程序集中(后端/前端分离)相关文档:
var backgroundTaskBuilder = new BackgroundTaskBuilder
{
TaskEntryPoint =
"MyNamespace.MyBackgroundTask",
Name = "MyBackgroundTask"
};
backgroundTaskBuilder.SetTrigger(new MaintenanceTrigger(15, false));
backgroundTaskBuilder.AddCondition(new SystemCondition(SystemConditionType.InternetAvailable));
backgroundTaskBuilder.Register();