0

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

请注意引号,因为我完全知道这是不可能的,但我想尽可能接近!

我尝试了后台线程和并行语句,大多数时候结果都很好。但是,有时每个服务调用之间会有较大的延迟。

我的代码如下所示:

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();

有什么优化的想法吗?

4

1 回答 1

0

万一这是答案。一次循环获取通道。然后播放并关闭另一个。为什么要使用 GetChannel 的延迟?

于 2012-11-12T19:42:10.363 回答