WCF服务和COM互操作回调

时间:2012-06-26 06:15:07

标签: multithreading wcf com interop mta

我有一个COM对象,它创建一个WCF服务的实例,并将句柄作为回调传递给自己。 COM对象标记/初始化为MTA

问题是调用回调的WCF服务的每个实例都发生在同一个线程上,因此它们一次被处理一个,这会导致重负载下的会话超时。 WCF服务是基于会话的,我不确定这是否有所不同。

1 个答案:

答案 0 :(得分:1)

您可以使用CallbackBehavior属性修饰回调实现,并将ConcurrencyMode设置为ConcurrencyMode.Multiple。默认设置为ConcurrencyMode.Single,一次限制为一个服务回调。当然,如果你这样做,你必须确保你的回调实现是线程安全的。