Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何增加后台任务的运行时间?_C#_Uwp_Background Task - Fatal编程技术网

C# 如何增加后台任务的运行时间?

C# 如何增加后台任务的运行时间?,c#,uwp,background-task,C#,Uwp,Background Task,所以我有一个关于UWP的后台任务,从服务器下载数据。此任务可能需要一分钟的时间,具体取决于internet速度。我发现,当我的用户最小化应用程序时,下载被暂停,所以决定在一台计算机上运行它 测试时,我发现我的下载没有完成,后来发现后台任务有一个限制: 后台任务的使用时间限制为30秒 但在更多的谷歌搜索之后,我发现了一种增加后台任务超时的方法 在通用Windows平台中,后台任务是 在后台运行,没有任何形式的用户界面。背景 任务通常在开始之前最多运行25秒 取消了。一些运行时间较长的任务也有一个检

所以我有一个关于UWP的后台任务,从服务器下载数据。此任务可能需要一分钟的时间,具体取决于internet速度。我发现,当我的用户最小化应用程序时,下载被暂停,所以决定在一台计算机上运行它

测试时,我发现我的下载没有完成,后来发现后台任务有一个限制:

后台任务的使用时间限制为30秒

但在更多的谷歌搜索之后,我发现了一种增加后台任务超时的方法

在通用Windows平台中,后台任务是 在后台运行,没有任何形式的用户界面。背景 任务通常在开始之前最多运行25秒 取消了。一些运行时间较长的任务也有一个检查 确保后台任务不处于空闲状态或正在使用 记忆。在Windows创建者更新(版本1703)中 将extendedBackgroundTaskTime限制功能引入到 取消这些限制。extendedBackgroundTaskTime功能是 在应用程序的清单文件中添加为受限功能:

Package.appxmanifest

XML

 <Package ...> 
    <Capabilities>  
        <rescap:Capability Name="extendedBackgroundTaskTime"/>      
    </Capabilities> 
  </Package> 

  
             
 
此功能消除了执行时间 限制和空闲任务监视程序

但在将上述内容添加到我的package.appxmanifest文件后,我得到以下错误:

文件“Package.appxmanifest”的内容不是格式良好的XML。 “rescap”是一个未声明的前缀


那么,是否可以从我的应用程序中删除此后台任务限制?

UWP有一项功能,允许您对下载进行排队,即使在应用程序关闭时也可以完成下载。 看看哪一个解释了如何使用此功能


如果您仍然想从后台任务开始下载,那么让后台任务调用该功能,这样,当后台任务到期时,下载将继续,并由Windows和UWP管理。

正如Mike McCaughan在对问题的评论中所观察到的那样,对于您看到的特定错误,最有可能的解释是,您只是没有在capability标记引用的封闭元素上声明
rescap
命名空间:

<Package
    xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
    xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
    xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
    xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
    IgnorableNamespaces="uap mp wincap rescap">

我不能说您是否需要其他名称空间,但您所争论的受限功能案例中涉及的关键名称空间是
xmlns:rescap


从中获取的信息。

阅读您找到的那篇文章中的链接,尤其是。@MikeMcCaughan我可以看到它在
extendedBackgroundTaskTime
下写着“任何人都不能请求访问这些功能以提交存储。”。这是不是意味着我不可能做到上面我想做的事?我不知道。我刚刚读到,您收到了关于重新映射的错误,知道这是一个基本的XML名称空间验证问题,并且阅读了足够多的文章,了解他们在哪里添加了名称空间。您确定将其正确压缩到文件中了吗?本文还指定了长期下载和文档