2012-09-26 1 views
6

Silverlight 응용 프로그램에 대해 "SingleInstanceHost"라는 흥미로운 플래그를 발견했습니다.이 플래그는 Application Manifest File에서 설정할 수 있습니다. Msdn은 "응용 프로그램에 단일 인스턴스 호스트가 있는지 여부를 나타냅니다"라고 말합니다.Silverlight App 용 "SingleInstanceHost"플래그

누구든지이 플래그가 의미하는 바를 설명 할 수 있습니까?

내 테스트 :

  1. 내가 시작 메뉴에서 두 번째 응용 프로그램 인스턴스를 실행하려고 다음 경우이 플래그없이 장치에서 내 WP7의 실버 라이트 응용 프로그램을 실행하는 경우 - 시스템이 첫 번째 인스턴스를 죽이고 실행 새로운.

  2. 이 플래그가있는 장치에서 wp7 실버 라이트 앱을 실행하면 시작 메뉴에서 두 번째 앱 인스턴스를 실행하려고하면 시스템이 첫 번째 인스턴스를 종료하고 새 인스턴스를 실행하지 않습니다.

이상한 행동!

+0

정말 아무도 모릅니다. – Dilnara

+1

[Windows Media Center 응용 프로그램 플랫폼 SDK에서 동일한 속성] (http://msdn.microsoft.com/en-us/library/windows/desktop/ee525779.aspx)을 찾을 수 있습니다. 이것은 단서입니까? 나도 몰라. :) 문서가 매우 가벼운 _ 응용 프로그램에 단일 인스턴스 호스트가 있는지 여부를 나타냅니다. _... MS, 설명서를 작성하십시오. D – Tonio

답변

0

Silverlight 3에서는 응용 프로그램이 동일한 페이지에서 서로 통신하거나 다른 브라우저 인스턴스에서 인스턴스화되는 방식을 도입했습니다 (Installed/OOB 응용 프로그램에서도 작동 함). 통신은 송신자 및 수신자 클래스에 의해 수행되며,이 클래스는 이름이 지정된 채널을 통해 메시지를 교환합니다. 각 수신자는 채널의 고유 이름을 등록해야합니다. 그렇지 않으면 예외가 발생합니다.

그리고 그건 속임수입니다. 특정 명명 된 채널을 듣는 것은 뮤텍스처럼 작동합니다. 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(); 
} 
} 
+1

응답이 'SingleInstanceHost' 플래그와 어떤 관련이 있습니까? 분명히 해줄 수 있니? – CAMOBAP

+1

그것은 SL 응용 프로그램의 단일 인스턴스를 가지지 만 'SingleInstanceHost' 플래그에 대한 설명은 아닙니다. – Tonio