1

我有一个基于 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 请求同时发送到客户端时,1-3 秒之间会有很大的延迟。我打开trace,发现时间在Unregister服务方法调用上: 在此处输入图像描述

如图所示,活动 3 和活动 4 之间有 2 秒的延迟。可能是什么原因?谢谢。

4

0 回答 0