2012-11-12 43 views
0

我有以下要求:14個WCF調用應該「並行」和「同時」執行,以便在14臺顯示器上啓動「同步」視頻。虛擬並行WCF服務調用盡可能快

請注意引號,因爲我完全知道這不是真的可能,但我想盡可能接近!

我嘗試了後臺線程和並行語句,大多數時候結果都非常好。但是,每次服務呼叫之間有時會有較大的延遲。

我的代碼如下所示:

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

優化任何想法?

+0

我會在一個循環中獲取通道。然後播放並關閉另一個。爲什麼採取GetChannel的滯後? – Paparazzi

+0

謝謝,好主意!我會試試看.. – Max

回答

0

如果是答案。在一個循環中獲取通道。然後播放並關閉另一個。爲什麼採取GetChannel的滯後?