13

.NET 3.5(現在は.NET 4.0で再コンパイル)上に2008年に構築された堅牢なWCFクライアントがあり、net.tcpバインディングを介して独自のWCFサービスと通信します。堅牢なクライアントは、ChannelFactory <IOurServiceInterface>()を使用してサービスプロキシを生成します。このプロキシを介して、現在、サービスへの同期呼び出しを行います。各呼び出しから結果が返されます。一方向の呼び出しはありません。

.NET 4.5 / C#5に移行しており、async / await/TAPを使用してクライアントを非同期にしたいと考えています。クリーンなコードと優れたランタイムパフォーマンスを実現する方法でこれを行うにはどうすればよいでしょうか。

(このテーマに関するMSのドキュメントを見てきましたが、常にsvcutilの実行について説明しています。svcutilは使用しません。ChannelFactoryを直接使用します。また、.NET4.5でチャネルファクトリを使用して非同期で操作を呼び出すためのMSドキュメントは変更されていません。 .NET 3.0日以降。ChannelFactoryは新しい非同期を採用していないようです。)

4

2 に答える 2

7

を使用して、既存のAPM(Begin*/ End*)エンドポイントをTAP対応にラップできます。TaskTaskFactory.FromAsync

私のAsyncWCFToday and Tomorrowの投稿が役立つかもしれません。これは、VS2012より前のsvcutilでTAPを使用する方法を示しています。

于 2012-11-18T18:28:57.580 に答える
3

あなたはこれを見ましたか?[OperationContract]待ちに待った帰りの例を作りましたTask<TResponse>

于 2012-11-29T00:30:00.307 に答える