Desktop-Extension: 运行 应该在后台还是正在关闭?
Should Desktop-Extension: Running in background or Shutting down?
我有一个带有执行任务的后台桌面扩展的 UWP 应用程序,有时它会几个小时不使用,有时每隔几秒钟就会需要它。我需要知道当它不是 运行 时,是应该用 Application.Current.Shutdown()
关闭它还是干脆离开 运行 等待下一个 RequestReceived
?我不想浪费资源,但似乎不活动的桌面扩展占用的资源最少,对吧?
关闭它的唯一问题是性能:UWP 应用程序需要等待响应,因此启动组件并发送请求与仅发送请求之间是否存在性能差异?
无论哪种方式,这里的最佳做法是什么?
如果您的桌面扩展后台进程仅用于处理来自 UWP 前台应用的请求,那么最佳做法是 link 它的生命周期与您的前台应用的状态一致。您可以从 UWP 控制它,方法是向您的扩展程序发送一条消息,以便在 UWP 进入不再需要扩展程序的状态时(例如,当它被挂起时)自行关闭。
一般来说,当 AppService 连接关闭时,扩展程序最好自行关闭。您可以通过在扩展中的 AppServiceConnection 实例上侦听 ServiceClosed 事件来执行此操作。我在此处发布了一个示例(“处理进程退出 - 场景 #2):https://stefanwick.com/2018/04/16/uwp-with-desktop-extension-part-3/
我有一个带有执行任务的后台桌面扩展的 UWP 应用程序,有时它会几个小时不使用,有时每隔几秒钟就会需要它。我需要知道当它不是 运行 时,是应该用 Application.Current.Shutdown()
关闭它还是干脆离开 运行 等待下一个 RequestReceived
?我不想浪费资源,但似乎不活动的桌面扩展占用的资源最少,对吧?
关闭它的唯一问题是性能:UWP 应用程序需要等待响应,因此启动组件并发送请求与仅发送请求之间是否存在性能差异?
无论哪种方式,这里的最佳做法是什么?
如果您的桌面扩展后台进程仅用于处理来自 UWP 前台应用的请求,那么最佳做法是 link 它的生命周期与您的前台应用的状态一致。您可以从 UWP 控制它,方法是向您的扩展程序发送一条消息,以便在 UWP 进入不再需要扩展程序的状态时(例如,当它被挂起时)自行关闭。
一般来说,当 AppService 连接关闭时,扩展程序最好自行关闭。您可以通过在扩展中的 AppServiceConnection 实例上侦听 ServiceClosed 事件来执行此操作。我在此处发布了一个示例(“处理进程退出 - 场景 #2):https://stefanwick.com/2018/04/16/uwp-with-desktop-extension-part-3/