0

この例 ( http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202967(v=vs.105).aspx ) に従って、Windows Phone 8 アプリでプッシュ通知を有効にしました。通知を受け取ることができ、コールバック メソッドPushChannel_ShellToastNotificationReceivedが呼び出されます。例から、このメソッドは通知の内容を含むメッセージ ボックスを開きます。

したがって、コールバックが実行されるスレッドから UI 関連の操作を安全に実行できると想定できますか? メッセージ ボックスが でラップされていることがわかりますが、Dispatcher.BeginInvoke(() =>これがどのスレッドで実行されるのか、このスレッドからどのオブジェクトを使用すればよいのかわかりません。

4

1 に答える 1

1

PushChannel_ShellToastNotificationReceivedアプリの実行中にプッシュ通知を受信すると、OS によって常に呼び出されるため、非 UI スレッドで実行されます。

実行する必要がある UI 関連のコードは、内部でラップする必要があります。Dispatcher.BeginInvoke(Action a)そうしないと、UnauthorizedAccessException例外が発生します。

于 2013-09-06T00:55:18.870 に答える