2012-04-13 2 views
0

LocalMessageReceiverLocalMessageSender 클래스를 사용하여 두 개의 Silverlight 응용 프로그램 (브라우저 및 기타 브라우저 중 하나)간에 통신합니다. 새 스레드에서 messageReceiver.MessageReceived을 실행해야합니다. 이 내 기본 코드 :스레드에서 EventHandler 실행

public MainPage() 
{ 
    LocalMessageReceiver messageReceiver = new LocalMessageReceiver("Msg", ReceiverNameScope.Global, LocalMessageReceiver.AnyDomain); 
    messageReceiver.MessageReceived += MessageReceiver_MessageReceived; //I want to execute this in a new Thread. 
    messageReceiver.DisableSenderTrustCheck = true; 

    try 
    { 
     messageReceiver.Listen(); 
    } 
    catch (ListenFailedException) 
    { 
     //to do 
    } 
} 

private void MessageReceiver_MessageReceived(object sender, MessageReceivedEventArgs e) 
{ 
    string command = e.Message; 

    switch (command) 
    { 
     case "SCAN": 
      e.Response = Scan(e.Message); //I need to send a response 
      break; 
     default: 
      e.Response = "NULL"; 
      break; 
    } 
} 

답변

0

이 당신이 원하는 것을 할 수 ...

messageReceiver.MessageReceived += (s, e) => 
    Task.Factory.StartNew(() => MessageReceiver_MessageReceived(s, e)); 

또는 사용하여 스레드 ...new Thread(() => MessageReceiver_MessageReceived(s, e)).Start();

+0

덕분에,이 내 문제를 해결! – Adelson

관련 문제