質問: WCFサービスは、Windows Phone 7のUIスレッドまたは非同期要求スレッドで実行されますか? 質問は、WCFサービスにアクセスするときにどのスレッドが使用されるかを示しています。 私が購読しているほとんどのWebサービスは、UIスレッドをブロックしないため、HttpWebRequestを使用しています。しかし、Bing APIにアクセスすると、WCFサービスが使用されます。これはWebClientまたはHttpWebRequestの実装ですか? 外部からはWebClientのように見えますが、データをUIスレッドにマーシャリングするためにBeginInvokeを呼び出す必要はないからです。これは正確ですか?
回答: Windows PhoneにWCFサービスはありません.WCF(サービスにアクセスする)の*クライアント*部分のコードのみがそのプラットフォームに含まれています。 `HttpWebRequest` と `WebClient` の両方でUIスレッドをブロックすることはできません(例えば、 `BeginGetResponse` と `DownloadAsync` を使用して) 。正しく覚えていれば、電話機のWCFクライアントは内部的に `HttpWebRequest` を使用しますが、これは実装の詳細です。いつでも変更できます。また、Windows Phoneプラットフォーム(Silverlightも同様)からのすべてのWCF呼び出しは、非同期である必要があります(つまり、同期サポートはありません)。