Tag: background task

UWP:为什么我可以通过后台任务(使用TimeTrigger)超过CPU配额?

在我的UWP应用程序中,我有一个后台任务,由TimeTrigger触发。 在后台任务的代码中,我有这个片段(在我的示例中,“第一个活动”和“第二个活动”几乎不消耗任何资源): var deferral = args.TaskInstance.GetDeferral(); await Task.Run(async () => { //… first activity await Task.Delay(TimeSpan.FromSeconds(90.0)); //… second activity, 90 seconds later }); 所以我的问题是: 为什么上述代码有效,因为文档清楚地说“后台任务仅限于30秒的挂钟使用”? 每个TriggerType记录的CPU配额在哪里?

在UWP App的不同页面中运行背景音频

我正在制作一个UWP应用程序,我在Button Click事件的MainPage中运行Background Audio。 当我移动到另一个页面时,还有一个不同的媒体可以在那里播放背景音频任务。 如何阻止当前播放的任务运行另一个? 我应该全球定义什么? 有关此问题的任何帮助? 编辑 我正在使用这个示例: https : //github.com/Microsoft/Windows-universal-samples/tree/master/Samples/BackgroundAudio当第一页的backgroundAudio正在运行时,我转到第二页和点击事件我用以下代码设置了一个新的List: // First update the persisted start track ApplicationSettingsHelper.SaveSettingsValue(ApplicationSettingsConstants.TrackId, RadioFacade.mySongs[0].MediaUri.ToString()); //here ApplicationSettingsHelper.SaveSettingsValue(ApplicationSettingsConstants.Position, new TimeSpan().ToString()); // Start task StartBackgroundAudioTask(); 但是新歌的运行时间超过了估计的时间并输入了此方法的其他内容: private void StartBackgroundAudioTask() { AddMediaPlayerEventHandlers(); var startResult = this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { bool result = backgroundAudioTaskStarted.WaitOne(10000); //Send message to initiate playback if (result == true) […]

注册后台任务而不运行应用程序

tl; dr :如何在不运行应用程序的情况下注册后台任务? 长版 : 我想在每次用户使用SystemTriggerType.UserPresent登录时注册后台任务。 我找到了有关注册任务的信息,但这是必须执行的代码。 如果必须在应用程序运行后执行任务,那就没问题了。 但是如何在不运行应用程序的情况下注册任务? 后台任务可以通过注册 var builder = new BackgroundTaskBuilder(); 然后 builder.Name = taskName; builder.TaskEntryPoint = taskEntryPoint; builder.SetTrigger(trigger); BackgroundTaskRegistration task = builder.Register(); 如上所述: 注册后台任务 。 但正如我所说 – 我的问题是如何在应用程序执行之前运行此代码。

Windows Phone 8.1后台任务在完成之前关闭

我的后台任务需要很长时间才能完成,操作系统正在杀死它。 我正在尝试在线同步我的联系人,这是我正在做的事情: 从电话簿获取所有联系人(需要约1秒) 将它们上传到服务器(约2秒) 从服务器检索所有联系人(~2-3秒) 从ContactStore删除所有联系人(ContactStore.DeleteAsync有时需要1分钟才能完成) 创建一个ContactStore并导入所有联系人)(1000个联系人约1-2分钟) 我有~100个联系人,它运行良好,但我想测试~1000个联系人,并且每次都没有完成。 我正在使用MaintenanceTrigger,但我认为它对于后台任务来说仍然太多了,但我需要对此进行确认。 应该允许MaintenanceTrigger任务执行更多资源密集型任务,那么为什么操作系统会终止我的后台任务呢?

Uwp在用户登录时执行backgroundtask

我正在学习win10 uwp,我的目标是在用户登录时执行操作,例如更新磁贴。 我已经检查了msdn,似乎我需要一个BackgroundTask。 所以我按照说明创建并注册了https://msdn.microsoft.com/en-us/library/windows/apps/mt299100.aspx和相关页面上的后台任务。 BackgroundTaskBuilder taskBuilder= new BackgroundTaskBuilder(); taskBuilder.Name = “TaskClassName”; taskBuilder.TaskEntryPoint = “TaskNameSpace.TaskClassName”; // set conditions (execute when user become present) taskBuilder.SetTrigger(new SystemTrigger(SystemTriggerType.SessionConnected, false)); taskBuilder.SetTrigger(new SystemTrigger(SystemTriggerType.UserPresent, false)); var registration= taskBuilder.Register(); 我的BackgroundTask命名空间和类放在同一解决方案下的一个独立项目中,并添加到Package.appxmanifest的Declaration选项卡中,并选择了属性System Event 。 我的IBackgroundTask实现是 public void Run(IBackgroundTaskInstance taskInstance) { BackgroundTaskDeferral deferral = taskInstance.GetDeferral(); UpdateMyTile(); deferral.Complete(); } 在使用visual studio进行调试时,代码运行相关并更新磁贴,因此我认为我的问题在于如何注册任务而不是在任务实现中。 为了确保我已经向现有项目添加了第二个BackgroundTask ,它每15分钟基于计时器调用并执行相同的function。 在第二种情况下,后台任务已注册并按预期执行。 BackgroundTaskBuilder taskBuilderT= new […]

Windows Phone 8.1后台任务 – 无法调试,也不会触发

我在WP8.1中遇到了后台任务的问题我在本教程之后创建了一个后台任务作为Windows运行时组件: http : //msdn.microsoft.com/en-us/library/windows/apps/xaml/hh977055的.aspx 问题是,我无法运行后台任务。 它运行在NetworkChange上。 当我能够飞行模式并返回时它不会发射。 当我转到Debug Location工具栏中的生命周期事件时,它会显示No Background tasks。 我已经调试了注册后台任务的代码,并且它已经注册了。 我也得到’这个断点目前不会被击中。 没有为此文档加载任何符号,我认为这会导致问题。 我试过 – 删除bin和obj文件夹并重建。 – 清理项目。 – 尝试从头开始构建项目。 – 关闭我的代码选项。 – 尝试在另一台机器上做同样的事情,仍然没有。 我的注册代码 var taskRegistered = false; var exampleTaskName = “UploadTask”; foreach (var task in BackgroundTaskRegistration.AllTasks) { if (task.Value.Name == exampleTaskName) { taskRegistered = true; break; } } if (!taskRegistered) { var […]