非同期プログラミングを使用するように WCF サービスを変換中です。予想どおり、インターフェイスは次のようになります。
public interface IFoo
{
Task<string> DoSomething(string request);
}
クライアント側では、Visual Studio からサービス参照を作成していません。私はクライアントとサーバーの両方を所有しているので、クライアントとインターフェースを共有するだけで、ChannelFactory を作成 (およびキャッシュ) します。メソッドを非同期的に呼び出すには、予想される構文を使用します。
IFoo clientChannel = channelFactory.CreateChannel();
bool result = await clientChannel.DoSomething("Hello World");
私の質問は次のとおりです: ChannelFactory によって生成された IClientChannel は、下にある非同期機能を実際に使用していますか? つまり、サーバーの応答を待っているスレッドがブロックされていないことを確認できますか?