伪并行WCF服务尽可能快地调用

时间:2012-11-12 11:04:35

标签: .net wcf

我有以下要求:14个WCF呼叫应“并行”和“同时”执行,以便在14个显示器上启动“同步”视频。

请注意引号,因为我完全清楚这是不可能的,但我希望尽可能接近!

我尝试了后台线程和Parallel语句,结果在大多数情况下非常好。但是,有时每次服务呼叫之间会有较大的延迟。

我的代码如下所示:

BackgroundWorker worker = new BackgroundWorker();

worker.DoWork += delegate(object sender, DoWorkEventArgs e)
{
    Parallel.For(0, myChannelControllers.Length, n =>
    {
        try
        {
            IMyService channel = myChannelControllers[n].GetChannel();

            channel.VideoWallPlay(...);

            myChannelControllers[n].CloseChannel(channel);
        }
        catch (...)
        {
        }

    });

};

worker.RunWorkerAsync();

有关优化的想法吗?

1 个答案:

答案 0 :(得分:0)

如果是答案。在一个循环中获取通道。然后在另一个中播放和关闭。为什么要采用GetChannel的延迟?