我在WCF上构建了一个简单的Pub / Sub服务。服务器端的界面如下所示:
[ServiceBehavior(UseSynchronizationContext = false, InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)]
public class RDFService : IRDFService
{
public Guid Register(string ric)
public void Unregister(Guid guid)
}
客户端回叫接口:
[CallbackBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)]
internal class ServiceCallback : IRDFCallBack
{
// [OperationContract(IsOneWay = true)]
public void UpdateSignal(Guid guid, string ric, MarketFeedData data, MarketDataMessageType type)
}
客户端是Win表单项目。
处理逻辑如下: 如果客户端收到UpdateSignal请求,使用处理方法,客户端将拨打电话取消注册它。
通常,UpdateSignal和Unreg方法几乎都没有时间。但是当UpdateSignal请求的涌入(8-10)同时发送到客户端时,在1-3秒之间存在显着延迟。我打开了trace,发现Unregister服务方法调用的时间是:
如图所示,活动3和4之间有2秒的延迟。可能是什么原因?感谢。