加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 是否可以防止在LOB UWP桌面应用程序/后台任务中挂起

发布时间:2020-12-14 04:00:13 所属栏目:Windows 来源:网络整理
导读:我的任务是将一个LOB桌面应用程序从.NET 4.5.2移植到 Windows 10 UWP.在正常的Win32应用程序中,应用程序会运行,直到用户关闭应用程序(服务和应用程序).但在阅读UWP应用程序时,我发现所有文档都说没有办法阻止应用程序暂停(只是临时或超过配额).我在移动设备/
我的任务是将一个LOB桌面应用程序从.NET 4.5.2移植到 Windows 10 UWP.在正常的Win32应用程序中,应用程序会运行,直到用户关闭应用程序(服务和应用程序).但在阅读UWP应用程序时,我发现所有文档都说没有办法阻止应用程序暂停(只是临时或超过配额).我在移动设备/平板电脑上理解这一点,但在具有性能和功率的台式机上却没有.

这个问题的一个常见答案是使用“真实”服务器(通常是Web服务器).但我们的应用程序用于没有互联网的领域.所以我们需要服务器/服务在台式机上运行.

到目前为止,我找到的最佳选择是具有内置后台任务的UWP应用程序,要求推迟.但据我所知,这仍然无法保证暂停.只有一些模糊的信息“你可能不会被暂停,因为它是一台在全球池中拥有大量资源的台式机”……

我不喜欢将.NET中的LOB服务应用程序和UWP中的客户端保留在一起,因为它们共享许多无法在.NET和UWP之间重用的代码.

那么,任何有明确答案/参考的人都可以阻止在Win10台式机上运行的服务式UWP应用/任务暂停?

解决方法

在wpdev.uservoice.com上已经提出了类似的 uservoice,其中微软正在倾听建议.我们强烈建议您对其进行投票,添加您的评论并对其进行监控.

我认为防止暂停与否应该由用户决定,但是没有办法做到这一点.我同意,在某些特殊情况下,它是有道理的.

但目前UWP的应用程序生命周期对于暂停状态非常清楚.在桌面系列上,UWP应用程序在最小化或Windows进入低功耗状态时暂停.

[更新]

您可能不知道的另一种可能的解决方案是Windows 10 – Extended execution session中引入的新功能.

目前没有关于此功能的官方示例,但您可以查看Jerry Nixon and Andy Wigley’s MVA session关于应用程序生命周期(#13). here是该会话的Q& A记录,您可以在其中找到示例代码.您可以下载MVA会话中包含的ppt,其中包含以下代码供您快速参考:

private async void OnSuspending(object sender,SuspendingEventArgs args)
{
    var deferral = e.SuspendingOperation.GetDeferral(); using (var session = new ExtendedExecutionSession { Reason = ExtendedExecutionReason.SavingData })
    {
        session.Description = "Upload Data";
        session.Revoked += (s,e) => { Log("Save incomplete"); }; try
        {
            if (await session.RequestExtensionAsync() == ExtendedExecutionResult.Denied)                 // takes 3 seconds
                UploadBasicData();
            else                 // takes 8 seconds
                await UploadDataAsync(session); Log("Save complete");
        }
        catch { Log("Save failed"); }
        finally { deferral.Complete(); }
    }
}

但正如杰瑞所说,仍然无法保证100%可靠.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读