Silverlight App的"SingleInstanceHost"标志

Dil*_*ara 6 silverlight

我发现了一些名为"SingleInstanceHost"的有趣旗帜,可以在应用程序清单文件中设置.Msdn说它"表明应用程序是否具有单个实例主机".

谁能解释这个标志是什么意思?

我的测试:

  1. 如果我在没有此标志的设备上运行我的wp7 silverlight应用程序,那么如果我尝试从开始菜单运行第二个应用程序实例 - 系统将终止第一个实例并运行新实例.

  2. 如果我在带有此标志的设备上运行我的wp7 silverlight应用程序,那么如果我尝试从开始菜单运行第二个应用程序实例 - 系统将终止第一个实例并且不运行新实例.

奇怪的行为!

Dha*_*tel 0

Silverlight 3 引入了一种应用程序之间相互通信的方法,无论是在同一页面上还是在不同的浏览器实例上实例化(甚至可以与已安装/OOB 应用程序一起使用)。通信由发送者类和接收者类执行,它们通过命名通道交换消息。每个接收者必须为通道注册一个唯一的名称,否则将引发异常。

\n\n

这就是\xe2\x80\x99 的窍门。监听特定的命名通道就像互斥体一样。通过捕获 ListenFailed 异常,您可以选择显示适当的消息或启动不同版本的应用程序。所有工作都在 App.Xaml.cs 文件中完成:

\n\n
private 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}\n
Run Code Online (Sandbox Code Playgroud)\n