1

netTcpBinding と Duplex Communication を使用して、(学習目的で) WCF を使用して PubSub システムを設計しています。パブリッシャーの ServiceContract には、すべてのセッション間で共有する必要がある辞書と、セッション固有にする必要があるリストがあります。

この場合の最良の選択肢は何ですか?

  1. InstanceContext.PerSession - 辞書を静的メンバーとして、リストをプライベート メンバーとして使用
  2. InstanceContextMode.Single - 辞書はプライベートとして、リストは辞書に転送されます (キー - ユーザー、値 - ユーザーのリスト)

私が持っているもう 1 つの質問は、私は NodeJS/EventMachine のバックグラウンドから来ており、この種のサービス (ConcurrenyMode) のパフォーマンスが向上することを望んでいません。Multipleまたは ConcurrencyMode。再入可能?

4

1 に答える 1

1

まず、ConcurrencyMode.Reentrant はシングル スレッドであるため、ロックで終了します。ConcurrencyMode.Multiple を使用するのが最適です (通常のスレッド化の問題から保護するためにコード内で必要な手順を実行した場合)。

あなたの instancecontextmode について - あなたが説明したシナリオでは、Single よりも PerSession の方が良いと思います。

ここでも少し役立ちます - http://msdn.microsoft.com/en-us/library/system.servicemodel.concurrencymode.aspx

于 2012-11-02T13:46:16.247 に答える