我有以下要求:应该“并行”和“同时”执行 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();
有什么优化的想法吗?