1

我正在使用 netTcpBinding 和双工通信设计带有 WCF(用于学习目的)的 PubSub 系统。在我的发布者 ServiceContract 中,我有一本需要在所有会话之间共享的字典,并列出了我需要特定于会话的内容。

这种情况下的最佳选择是什么?

  1. InstanceContext.PerSession - 字典作为静态成员,列表作为私有成员
  2. InstanceContextMode.Single - 字典作为私有,列表将转移到字典(键 - 用户,值 - 用户列表)

我的另一个问题是,我来自 NodeJS/EventMachine 背景,我不希望这种服务在性能方面更明智 - ConcurrenyMode。多重或并发模式。可重入

4

1 回答 1

1

首先 - ConcurrencyMode.Reentrant 是单线程的,所以会以锁结束,你最好使用 ConcurrencyMode.Multiple (前提是你已经在你的代码中采取了必要的步骤来防止常见的线程问题)

关于您的 instancecontextmode - 在您描述的场景中,我相信 PerSession 比 Single 更好。

这里也有点帮助 - http://msdn.microsoft.com/en-us/library/system.servicemodel.concurrencymode.aspx

于 2012-11-02T13:46:16.247 回答