gpt4 book ai didi

silverlight - Silverlight 应用程序的 "SingleInstanceHost"标志

转载 作者:行者123 更新时间:2023-12-02 05:42:05 24 4
gpt4 key购买 nike

我发现了一些名为“SingleInstanceHost”的有趣标志,适用于 silverlight 应用程序,可以在应用程序 list 文件中设置。 Msdn 说它“指示应用程序是否具有单实例主机”。

谁能解释一下这个标志的含义吗?

我的测试:

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

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

奇怪的行为!

最佳答案

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

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

private void Application_Startup(object sender, StartupEventArgs e)
{
try
{
receiver = new LocalMessageReceiver("singleinstance");
receiver.Listen();
this.RootVisual = new MainPage();
}
catch (ListenFailedException)
{
this.RootVisual = new DuplicateInstancePage();
}
}

关于silverlight - Silverlight 应用程序的 "SingleInstanceHost"标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12602344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com