ピースペース

非同期応答イベントを待ちたい

leave a comment »

最近巷では、非同期が花盛りって感じ
http://www.atmarkit.co.jp/ait/subtop/features/da/ap_masterasync_index.html
xin9leさん、すごい! この記事はわかりやすくて良記事ですね。ありがとう!
なんというか、オラが何がわかっていなくてどこで躓いているのか?をちゃんと分かっていて、
そこをオラの為に説明してくれている。という気遣いが感じられるのだ(^O^)

さて、awaitはまさにこんなオラ(ただの利用者)向けの簡単記法なんだが、
たとえばRIA Servicesのような既存のサービスProxyのライブラリはすでにCompletedや、
OnResponseRecievedというようなイベントで応答を受けるようになっていて、
普段はそれで何も問題がないのだが、
たまーに、サービスの要求とその非同期な応答処理をひとつの同じメソッドの中で行いたいということがある。
簡単に言うと、その非同期サービスをラップして関数化したいとか、新しく別のサービスとして提供したいとか。
そんなときは、要求をSendしたあとに応答を待つ必要があるわけだが、それをどう書けば良いの?
が今日のオラの悩みだ。

これはつまり、せっかく非同期になっているものを同期的に扱いたいという動機で、
そのドーキは正しいの?と不安にもなるけど、そうゆうことってあるよね??

応答のポーリングっていうんでしょうか?
サーバー側では要求を受け付けるときに、当たり前に行われていることだと思うが、
ライブラリユーザーに成り下がってる一般プログラマに、これはけっこう謎だ。
と、悩んで、探して、たどり着いたのが、ManualResetEvent
使えそうな気がするがどうなんだろう?
この場面でそれを使っていいものかのかどうか?が結構不安^^;
つかってみて使えればOK。てことで

Written by nasu38yen

2013年6月6日 @ 2:45 PM

カテゴリー: 未分類

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。