Windows 10下的通用应用程序如何创建多个实例?

13

我开始开发通用 Windows 平台(Windows 10)应用程序,需要开发一个可以在多个实例上运行的应用。我已经看到通用应用程序可以实现这一点,因为已有一些应用程序可以做到这一点(例如计算器、Edge浏览器)。

我已经尝试在 Google 上搜索、在 Microsoft 的 API 参考中查找,以及在这里寻找,但都没有找到。非常感谢您的帮助。


今年春季的新版本1803将拥有多实例功能。 - Michael Hawker - MSFT
@MichaelHawker-MSFT,在开发时只开启多实例模式是否容易?如果可以的话,怎样操作呢?我的应用程序不是多实例但是是多客户端。如果能在单台机器上测试而无需为此进行大量更改,那就太好了。 - HappyNomad
@HappyNomad,你应该可以直接修改清单文件。但是我认为,由于打开的应用程序可以选择重定向,因此它可能仍然会有不同的行为。因此,在同一台机器上但在隔离环境中测试应用程序最好还是使用虚拟机。 - Michael Hawker - MSFT
1个回答

9

UWP/应用商店应用不使用多实例,但使用多视图风格。(Edge是一个例外,也许…)

在多视图中,实例是相同的,但每个窗口的“Views”在各自的线程上运行。

设计指南: 多窗口指南

示例:MultipleViews示例

[2018年2月添加]从Windows 10 RS4(1803)开始,我们可以使用真正的多实例与UWP应用程序 :) 适用于桌面和IoT设备系列。这是一种“选择加入”的选项 - 您需要在应用程序清单中声明才能使用它。详细信息和样本可在以下Microsoft Docs网站上获得。

创建多实例通用Windows应用程序


[2017年6月添加]从build2017演示中可以看出,微软计划通过未来的Windows更新来扩展他们的UWP应用程序模型,以允许真正的“多实例”。但详情尚不可用。


[2015年添加]我已将示例bogusCalc上传到我的OneDrive。

这是基于VS2015“空白”模板和ViewLifetimeControl.cs,从多个视图示例中选择。每次从开始菜单启动bogusCalc时,都会调用Application::OnLaunched

boguscalc的截图 =)


这很不错,但不是我要找的。我的意思是真正的实例化。例如,通用计算器应用程序;如果您多次单击其图标或磁贴,它将打开应用程序的另一个实例,而无需从应用程序内部打开另一个视图。 - Yaroslav de la Peña Smirnov
2
UWP Calc 应用程序是多视图模型的一个很好的例子。用户可以同时使用几个计算器视图。但是,使用任务管理器时只能看到一个计算器实例(进程)。 当用户启动应用程序时,如果应用程序已经在运行,则会触发“OnActivated(in app.xaml.cs)”事件。在此处理程序中,您可以创建应用程序的新视图。这就是 calc 应用程序的方式。 - Mamoru Satoh
我尝试使用OnActivated事件,但在那种情况下它不会触发。 - Yaroslav de la Peña Smirnov
1
哦,我误解了。OnLaunched才是正确的。我会编辑我的答案并粘贴示例代码。 - Mamoru Satoh
似乎创作者更新没有获得多实例功能。https://learn.microsoft.com/zh-cn/windows/uwp/whats-new/windows-10-version-1703 - Joe Healy
1
新版 1803 将于今年春季推出 多实例 功能。 - Michael Hawker - MSFT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接