【问题标题】:How to close the desktop application running in background when called from UWP app从 UWP 应用程序调用时如何关闭在后台运行的桌面应用程序
【发布时间】:2019-10-13 22:19:30
【问题描述】:

我正在开发 UWP 应用程序,其中我已向我的应用程序添加完全信任权限,以便使用 APpServiceConncetion 访问桌面应用程序。但是,每当我调用 FullTrustProcessLauncher 时,它都会在任务管理器中的 UWP 应用程序下创建我的桌面应用程序的新实例,并且看起来它会消耗每个桌面应用程序的 CPU 内存。 从 UWP 调用桌面应用程序时,如何仅关闭/保留一个实例?

当我在 UWP 中不再需要此代码时,如何从任务管理器/后台终止桌面应用程序

【问题讨论】:

    标签: c# uwp desktop-application taskmanager desktop-bridge


    【解决方案1】:

    假设您拥有代码,您可以完全控制桌面应用程序进程的生命周期。因此,您的进程可以在不再需要时自行关闭。一个常见的良好做法是在 appservice 连接关闭时关闭(即 UWP 应用程序消失并触发 ServiceClosed 事件)。

    这篇文章中有一些详细信息(在“处理进程退出场景 - 场景 2”下): https://stefanwick.com/2018/04/16/uwp-with-desktop-extension-part-3/

    【讨论】:

    • 谢谢,我的桌面应用程序中已经有一个 ServiceClosed 事件。但我注意到,即使我不再与桌面应用程序通信,它也没有被触发。桌面应用程序实例仍然存在于任务管理器中。每次当我根据我的要求调用 FullTrustProcessLauncher 运行桌面应用程序时,都会创建额外的桌面应用程序实例。例如,如果我调用 FullTrustProcessLauncher 三次来访问桌面应用程序,则会在任务管理器中的 UWP 应用程序下创建三个实例。
    • 你能分享一个重现项目并澄清步骤吗?当 UWP 应用终止时,应触发 ServiceClosed 事件。或者,您也可以通过为其实现单例模式来重用正在运行的桌面应用程序进程。
    猜你喜欢
    • 2017-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 2018-07-08
    • 2010-10-06
    • 1970-01-01
    相关资源
    最近更新 更多