UWP暂停禁用ExtendedExecutionSession或ExtendedExecutionForegroundSession

UWP暂停禁用ExtendedExecutionSession或ExtendedExecutionForegroundSession,uwp,suspend,Uwp,Suspend,UWP,我无法禁用挂起。我需要你的知识。 下面是我了解这个问题的简单示例。这是计数器增加/减少应用程序 事实上,我想在不停止的情况下,从设备上监视356 x 24小时的温度。我希望在挂起模式下增加value+ 但UWP在翻转过程中不起作用为什么?? 上传的代码在Github.com上。您可以测试我的简单应用程序。 这是我的环境。这是台式电脑 台式电脑或插入式笔记本电脑(无电池模式) 作为侧面加载的应用程序输出 Package.appxmanifest <?xml version="

UWP,我无法禁用挂起。我需要你的知识。 下面是我了解这个问题的简单示例。这是计数器增加/减少应用程序

事实上,我想在不停止的情况下,从设备上监视356 x 24小时的温度。我希望在挂起模式下增加value+

但UWP在翻转过程中不起作用为什么??

上传的代码在Github.com上。您可以测试我的简单应用程序。

这是我的环境。这是台式电脑

  • 台式电脑或插入式笔记本电脑(无电池模式)
  • 作为侧面加载的应用程序输出
Package.appxmanifest

<?xml version="1.0" encoding="utf-8"?>                                                                                          
<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"                  
         xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"                                           
        IgnorableNamespaces="uap mp rescap">                                                                                    


  <Capabilities>                                                                                                                
    <Capability Name="internetClient" />                                                                                        
    <rescap:Capability Name="extendedBackgroundTaskTime"/>                                                                      
    <rescap:Capability Name="extendedExecutionUnconstrained"/>                                                                  
    <DeviceCapability Name="serialcommunication">                                                                               
      <Device Id="any">                                                                                                         
        <Function Type="name:serialPort" />                                                                                     
      </Device>                                                                                                                 
    </DeviceCapability>                                                                                                         
  </Capabilities>                                                                                                                                                                                                                                             
</Package>       
问题很简单。

如何在暂停期间增加价值

更新#1

根据雷蒙德的建议(谢谢!)。它已激活CoreWindow.com事件

Window.Current.CoreWindow.Activated += CoreWindow_OnActivated;
有了这段代码,我得到了ExtendedExecutionResult.Allowed。很好

但我还是有问题。在释放模式下,我尝试模拟“暂停”。代码永远不起作用。。我想。我的后台作业试图修改UI。那么,代码可能无法工作。。但我不知道为什么

我上传了2版的代码,你可以轻松测试

更新#2

我想,我们不应该在这个测试中使用“暂停”按钮。即使我们写这段代码,它也会使true挂起。正确的? 如果是这样,我们现在就可以解决这个问题


我测试了一些,看起来不错。

没有一个地方是正确的。名称以
Request
开头的方法必须从UI线程调用。在(A)和(B)中,您还没有创建窗口,因此线程不是UI线程。在(C)和(D)中,您是从挂起处理程序调用它的,它不能保证在任何特定线程上引发,因此您可能不在UI线程上。激活窗口后创建扩展会话。谢谢你,雷蒙德。当窗口处于活动状态时,我运行。。但是在挂起期间,代码永远不起作用。我想,我的代码试图更新UI。这是原因吗?请检查我的“更新1”的问题。我写了详细信息。你不能无限期地在暂停中运行。暂停的扩展执行是为了在暂停之前给您额外的时间保存数据,但您不能无限期地推迟暂停。(您不想这样做,因为在暂停完成之前,您的程序无法恢复。如果您从未完成暂停,则您的程序将永远不会恢复。)对于台式(插入式)PC,要使用UWP制作监控应用程序,是否不可能?我不明白…请给我建议。。我们应该要求用户不要做最小化的应用程序吗?或者,用户是否可以在365 x 24小时内以最小值运行应用程序?我们应该使用WPF吗?但这是不可能的。我花了6个月的时间进行UWP开发。。。。我需要你的建议…在你活跃时获得延长执行时间。扩展执行将阻止您挂起。
Window.Current.CoreWindow.Activated += CoreWindow_OnActivated;