WCFプロキシクラスがplinqを介したリクエストの送信をどのように処理するかは正確にはわかりません。次のコードスニピットは問題ないように見えますか、それとも複数のスレッド間で共有状態に問題を引き起こす可能性があるように見えますか?(また、usingブロックは理想的ではないことをすでに理解しています。これは単なる例です)
using (var proxy = new ServiceProxyOfSomeSort())
{
_aBunchOfMessagesToSend.AsParallel()
.WithDegreeOfParallelism(SomeDegree).ForAll(m =>
{
proxy.SomeOperation(m);
}
}
スレッドごとに1回プロキシを作成する必要がありますか?スレッド間でプロキシを共有しても大丈夫ですか?ややコストのかかる操作であるため、必要以上にプロキシを作成したくありません。
編集:
サーバー側のサービスの実装の詳細は実際にはありません。要件の観点から、複数のクライアントがいつでも呼び出すことができるように(非同期で)開発する必要がありました。彼らが非同期呼び出しを処理できると仮定すると(これは大きな仮定かもしれません)、私はこれがクライアント側から受け入れられるアプローチであるかどうかを理解しようとしています。それは機能しています、私はこのアプローチに何か落とし穴があるかどうかわかりません。