0
我有一个COM对象,它创建一个WCF服务的实例并将一个句柄作为回调传递给自己。 COM对象被标记/初始化为MTA。WCF服务和COM互操作回调
问题是调用回调函数的每个WCF服务实例都发生在同一个线程上,因此它们一次只能处理一个,导致会话超时。 WCF服务是基于会话的,我不确定这是否有任何区别。
我有一个COM对象,它创建一个WCF服务的实例并将一个句柄作为回调传递给自己。 COM对象被标记/初始化为MTA。WCF服务和COM互操作回调
问题是调用回调函数的每个WCF服务实例都发生在同一个线程上,因此它们一次只能处理一个,导致会话超时。 WCF服务是基于会话的,我不确定这是否有任何区别。
您可以使用CallbackBehavior
属性修饰回调实现,并将ConcurrencyMode
设置为ConcurrencyMode.Multiple
。默认设置为ConcurrencyMode.Single
,一次限制为一个服务回调。当然,如果你这样做,你必须确保你的回调实现是线程安全的。