c# – UWP中远程应用程序服务后台任务的限制
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – UWP中远程应用程序服务后台任务的限制,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2003字,纯文字阅读大概需要3分钟。
内容图文
![c# – UWP中远程应用程序服务后台任务的限制](/upload/InfoBanner/zyjiaocheng/811/ec30615fec47431ab6c3a52c3a6ba031.jpg)
我想知道远程设备调用后台任务的限制是什么.我在微软的文档中发现的只是后台任务的一般限制,即30秒.
但我的简单测试表明,从其他设备调用的应用服务并非如此. (我不确定常规应用程序服务.我没有在测试中包含它们)
这是我的测试方法:
我将此代码放到应用程序的OnBackgroundActivated并注册了TimeTrigger后台任务.
for (int i = 0; i < 100; i++)
{
Common.ToastFunctions.SendToast((i * 5).ToString() + " seconds");
await System.Threading.Tasks.Task.Delay(TimeSpan.FromSeconds(5));
}
(而且我推迟了,所以因为等待操作,任务不会意外关闭)
我得到了20-25秒的吐司通知,之后什么都没有.因此,该过程在30秒之前被杀死,这与官方文档一致.
然后我将完全相同的代码放在AppServiceConnection的RequestReceived事件中,并将此代码放在OnBackgroundActivated中(基本上设置RequestReceived事件并获取延迟:
this._backgroundTaskDeferral = args.TaskInstance.GetDeferral();
args.TaskInstance.Canceled += OnTaskCanceled;
var details = args.TaskInstance.TriggerDetails as AppServiceTriggerDetails;
if (details?.Name == "com.ganjine") //Remote Activation
{
_appServiceconnection = details.AppServiceConnection;
_appServiceconnection.RequestReceived += OnRequestReceived;
_appServiceconnection.ServiceClosed += AppServiceconnection_ServiceClosed;
}
然后我创建了一个连接并从另一个设备向此后台任务发送了一些数据(使用Rome API)
这一次,它在30秒之前没有停止.我的循环是100次迭代,我得到了祝酒词,表明后台任务没有停止,并且能够运行~500秒.
但这是我的循环,它可能会继续更长的循环.
这是预期的行为吗?从远程设备调用的AppService后台任务的确切限制是什么?
更新:似乎远程应用程序(调用此后台任务的人)必须保持打开状态. (可能是因为连接对象应该保持活着?).如果我关闭它,后台应用程序服务将在几秒钟后终止.
解决方法:
Is this the expected behavior? What is the exact limitation of AppService background tasks called from a remote device?
是.应用服务的生命周期很长.它不限于30秒.如果暂停调用应用程序,应用程序赞助的应用程序服务将被终止.它也没有内存限制,但如果机器本身的资源不足,则可能导致启动失败或服务终止.
您可以从channel9:App-to-App Communication: Building a Web of Apps上的视频中获取更多详细信息
内容总结
以上是互联网集市为您收集整理的c# – UWP中远程应用程序服务后台任务的限制全部内容,希望文章能够帮你解决c# – UWP中远程应用程序服务后台任务的限制所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。