2012-05-05 25 views
0

我有一個簡單的代碼,從服務器發送到客戶端的值來計數。這個循環計算9到9的值,從1到9.一切適用於1,3或9個客戶端。但是對於其他i_wiersz值爲9的客戶端,並且foreach循環希望將某些內容發送到另一個客戶端服務器時發生故障。何可以與任何一個客戶合作?休息foreach循環(WCF服務器/客戶端)

我嘗試把foreach循環中:

if(i_wiersz == 9) 
    break; 

但得到一個錯誤:錯誤

Control cannot leave the body of an anonymous method or lambda expression

我的代碼:

bool spr_wiersz(int wiersz, int kolumna) //chck_roow(int roow, int column) 
{ 
    wys_tab(); 
    int i_wiersz = 0; 
    bool[] result = new bool[9]; 

    while (i_wiersz < 9) 
    { 
     subscribers.ForEach(delegate(ImessageCallback callback) 
     { 
      if (((ICommunicationObject)callback).State == CommunicationState.Opened) 
      { 
       result[i_wiersz] = callback.spr_wiersz(wiersz, kolumna, i_wiersz); 
       i_wiersz++; 
      } 
     }); 

     for (int j = 0; j < i_wiersz; j++) 
     { 
      if (result[j] == false) 
      { 
      return false; 
      } 
     } 
    } 

    return true; 
} 
+0

這是完全相同的副本[使用匿名委託時_How我該退出列表 .ForEach循環?_](http://stackoverflow.com/questions/557159/how-do-i-出口-A-liststring-的foreach - 環 - 時 - 使用-AN-匿名代表)。 – 2012-05-05 20:12:48

回答

1

不能你可以將它轉換成傳統的foreach

foreach (IMessageCallback callback in subscribers) 
    { 
     if (((ICommunicationObject)callback).State == CommunicationState.Opened) 
     { 
      result[i_wiersz] = callback.spr_wiersz(wiersz, kolumna, i_wiersz); 
      i_wiersz++; 

      if (i_wiersz == 9) 
       break; 
     } 
    }