0

次の要件があります。14 個のディスプレイで「同期」されたビデオを開始するには、14 個の WCF 呼び出しを「並行して」かつ「同時に」実行する必要があります。

引用符に注意してください。これが実際には不可能であることは十分承知していますが、できる限り近づけたいと考えています。

バックグラウンド スレッドと Parallel-statement を試してみましたが、ほとんどの場合、結果はかなり良好です。ただし、すべてのサービス呼び出しの間に大きな遅延が発生する場合があります。

私のコードは次のようになります。

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

それが答えだった場合。1 ループでチャネルを取得します。次に、再生して別のものを閉じます。なぜ GetChannel の遅れを取るのですか?

于 2012-11-12T19:42:10.363 に答える