仅在 Visual Studio 中激活时才调用后台任务

Posted

技术标签:

【中文标题】仅在 Visual Studio 中激活时才调用后台任务【英文标题】:Background task only called when activated in visual studio 【发布时间】:2015-08-24 06:52:05 【问题描述】:

我有一个用于轮询错误的后台服务。

此后台任务仅在我在调试时激活它时触发。

这里是服务的注册

以及服务本身

我是否以错误的方式调用服务?为什么只有在我在 Visual Studio 中激活它时才会触发? 我做错了什么?

【问题讨论】:

您使用的时间间隔(以分钟为单位)? 间隔可以是可变的,但至少为 15 你是否在包清单中声明了后台任务? 任务仅在我在 Visual Studio 中激活它时才会触发(第一张图片)可以多次重新触发它。所以如果我能知道当我按下它时实际发生了什么,我可能会解决我的问题 是的,后台任务已声明 【参考方案1】:

我将在这里添加一些我注意到的点,您需要在代码中考虑这些点。

1-您需要在此行之后检查访问是否被拒绝

var result = await BackgroundExecutionManager.RequestAccessAsync();  
if(result   != BackgroundAccessStatus.Denied)

2- 您正在注册时间触发器,OneShot 属性等于 true,在您的情况下“轮询”应该为 false,否则它将只运行一次。

taskBuilder.SetTrigger(new TimeTrigger(15, false)); 

3- 如果您显示任何 toast,请在包清单中添加 Toast Capable,对 Badge 执行相同操作(如果您正在更新徽章)。

【讨论】:

以上是关于仅在 Visual Studio 中激活时才调用后台任务的主要内容,如果未能解决你的问题,请参考以下文章

仅在 Visual Studio 外部运行时才找到文本文件

只有在 Visual Studio 之外运行 EXE 时才会出现发布错误

Visual studio 2017怎么注册激活

visual studio试用期结束后怎么激活升级

Visual Studio 代码分析 (fxCop) 仅在第一次构建后运行

在 Visual Studio 中 Resharper 后重新激活多插入符号快捷方式