asyncawaitを使用してSilverlightのローカルメッセージングを実装したいと思います。
LocalMessageReceiverのメソッドとMessageReceivedイベントListenTask()
を使用して、タスクにラップされたメッセージを返すメソッドを作成したとします。Listen
非同期待機を使用して、メッセージを受信したときにメッセージを処理するにはどうすればよいですか?
asyncawaitを使用してSilverlightのローカルメッセージングを実装したいと思います。
LocalMessageReceiverのメソッドとMessageReceivedイベントListenTask()
を使用して、タスクにラップされたメッセージを返すメソッドを作成したとします。Listen
非同期待機を使用して、メッセージを受信したときにメッセージを処理するにはどうすればよいですか?
1つだけでなく多くのメッセージを期待しているので、これはReactive Extensions(Observable.FromEvent)に適している可能性が高く、その後サブスクライブします。タスクは単一の将来の値に適しています。IObservableは将来の値の「ストリーム」に適しています。
Rx 2.0では、必要に応じてobservableでawaitを使用できます。
ジェームズ・マニングの答えは良いものです。ただし、async / awaitを使用したい場合は、Dataflowライブラリを使用して、「ストリーミングされた」非同期メッセージパッシングを非常に堅牢に実行できます。