2013-09-05 75 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當您的應用程序運行時收到推送通知時,操作系統始終會調用它,因此它將在非UI線程上執行。

任何需要執行的與UI相關的代碼都必須包含在Dispatcher.BeginInvoke(Action a)之內,否則您將得到UnauthorizedAccessException異常。

+0

好的謝謝你的信息。所以'Dispatcher.BeginInvoke(Action a)'奇蹟般地在UI線程中執行代碼,並且這個問題解決了? :) – user826955

+0

@ user826955是的。 –

+0

非常感謝:)然後:) – user826955