2011-10-19 9 views
1

SilverlightアプリケーションにServiceReferenceを追加しました。私はそれをWcfServiceReferenceと呼んだ。私はclient.GetSpendDataTotal(ない非同期)を参照することができるはずです考えていたが、それは利用できません以下のWCF Silverlightサービスリファレンス

using (var client = new WcfServiceReference.WcfDataServiceClient()) 
    { 
     client.GetSpendDataTotalAsync(Guid.NewGuid()); 
    } 

をコーディングすることができます。しかし、それはアプリにあります - 私は私のサービスでそれを見つけることができます...おそらく何か明らかでしょうか?

答えて

5

Silverlightのみでは、非同期メソッドを使用してWCFサービスを使用できます。一般的な考え方は、外部サービスへの同期呼び出しはUIスレッドを結びつけ、返るまであなたのアプリケーションを応答しないままにしておくことです。 Silverlightの上のより多くの議論のためのthis questionthis blog postを見て、なぜあなたは、非同期サービス呼び出しを使用して中に案内しています。ブログ記事から引用すると、「非同期要求のみを許可するプラグインアーキテクチャの全目的は、プラグインがブラウザをロックできないようにすることです」。

Eric Lippertは、今後の非同期待機パターンについてUIスレッドin this MSDN Magazine articleを関連付けるバックグラウンドワークの問題の優れた説明/説明を行います。間違いなく読む価値がある。ここで覚えておくべき

主なものは、UIが応答しない場合にかかわらず、作業はバックグラウンドで何が起こっされる可能性がありますどのくらい役に立つの、アプリは限り利用者が懸念していると何もしないことです。 Silverlightで非同期のWCFサービスコールを使用すると、ユーザーが何もできない理由をユーザーに知らせずに、結果を待つ間にUIで他の何かを行うことができます。

3

Silverlightでは、サービスへの非同期呼び出しを許可しません。 WCFサービスへのSilverlightアクセスをコーディングするときは、Asynchronousを考慮してください。

関連する問題