次の要件があります。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();
最適化のアイデアはありますか?