1

我们有一个 WCF 发布-订阅模型应用程序,它工作正常。

但是这部分代码。

  foreach (SubList subscriber in subscribers.ToList())
        {
           try
             {
               object ClientResult;
               ClientResult = publishMethodInfo.Invoke(subscriber.CallBackId, new object[] { ClData });
                }
          }

有什么方法可以一次调用所有订阅者。由于上面的代码在一个循环中获取每个订阅者并发布。这会导致其他订阅者等待之前执行。

4

1 回答 1

3

为什么不并行调用它们?

Parallel.ForEach(subscribers.ToArray(), subscriber =>
{
    try
    {
        object ClientResult;
        ClientResult = publishMethodInfo.Invoke(
            subscriber.CallBackId, new object[] { ClData });
    }
    ...
});
于 2012-09-14T07:12:06.867 回答