2012-11-12 2 views
0

다음 요구 사항을 충족해야합니다. 14 개의 WCF 호출을 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(); 

어떤 아이디어?

+0

채널을 하나의 루프에서 가져옵니다. 그런 다음 다른 곳에서 놀고 닫습니다. GetChannel의 지연을 가져 오는 이유는 무엇입니까? – Paparazzi

+0

고마워, 좋은 생각이야! 시도해 볼게.. – Max

답변

0

답변 일 경우. 하나의 루프에서 채널을 가져옵니다. 그런 다음 다른 곳에서 놀고 닫습니다. GetChannel의 지연을 가져 오는 이유는 무엇입니까?

관련 문제