2013-09-05 2 views
0

이 예 (http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202967(v=vs.105).aspx) 다음에 푸시 알림을 사용할 수 있도록 Windows Phone 8 앱을 활성화했습니다. 알림을받을 수 있으며 콜백 메소드 PushChannel_ShellToastNotificationReceived이 호출됩니다. 이 예제에서이 메서드는 알림 내용이 포함 된 메시지 상자를 엽니 다.Windows Phone 8에서 알림 처리기 푸시

따라서 콜백이 실행되는 스레드에서 UI 관련 작업을 실행하는 것이 안전하다고 가정 할 수 있습니까? 메시지 상자가 Dispatcher.BeginInvoke(() =>에 싸여있는 것을 볼 수 있습니다. 그러나이 스레드가 실행될 스레드와이 스레드에서 사용해야하는 개체를 전혀 모릅니다.

답변

1

PushChannel_ShellToastNotificationReceived은 앱이 실행되는 동안 푸시 알림을 받으면 OS에 의해 항상 호출되므로 UI가 아닌 스레드에서 실행됩니다.

실행해야하는 UI 관련 코드는 Dispatcher.BeginInvoke(Action a) 안에 포장해야합니다. 그렇지 않으면 UnauthorizedAccessException 예외가 발생합니다.

+0

정보를 제공해 주셔서 감사합니다. 그래서'Dispatcher.BeginInvoke (Action a)'는 UI 스레드의 코드를 마술처럼 실행하고 문제가 해결 되었습니까? :) – user826955

+0

@ user826955 예. 맞습니다. –

+0

덕분에 많이 :) – user826955

관련 문제