我发现了一些名为"SingleInstanceHost"的有趣旗帜,可以在应用程序清单文件中设置.Msdn说它"表明应用程序是否具有单个实例主机".
谁能解释这个标志是什么意思?
我的测试:
如果我在没有此标志的设备上运行我的wp7 silverlight应用程序,那么如果我尝试从开始菜单运行第二个应用程序实例 - 系统将终止第一个实例并运行新实例.
如果我在带有此标志的设备上运行我的wp7 silverlight应用程序,那么如果我尝试从开始菜单运行第二个应用程序实例 - 系统将终止第一个实例并且不运行新实例.
奇怪的行为!
Silverlight 3 引入了一种应用程序之间相互通信的方法,无论是在同一页面上还是在不同的浏览器实例上实例化(甚至可以与已安装/OOB 应用程序一起使用)。通信由发送者类和接收者类执行,它们通过命名通道交换消息。每个接收者必须为通道注册一个唯一的名称,否则将引发异常。
\n\n这就是\xe2\x80\x99 的窍门。监听特定的命名通道就像互斥体一样。通过捕获 ListenFailed 异常,您可以选择显示适当的消息或启动不同版本的应用程序。所有工作都在 App.Xaml.cs 文件中完成:
\n\nprivate void Application_Startup(object sender, StartupEventArgs e)\n{\ntry\n{\n receiver = new LocalMessageReceiver("singleinstance");\n receiver.Listen();\n this.RootVisual = new MainPage();\n}\ncatch (ListenFailedException)\n{\n this.RootVisual = new DuplicateInstancePage();\n}\n}\nRun Code Online (Sandbox Code Playgroud)\n