2014-10-22 148 views
1

我想使用streamreader來捕獲通過TCPClient發送的字符串,但不是經常彙集,它只會通過循環一。Streamreader導致while循環停止

private void recMessage() 
    { 
     while (true) 
     { 
      String listAsString = ""; 
      try 
      { 
       listAsString = streamReader.ReadLine(); 
      } 
      catch (Exception e) 
      { 
       Interaction.MsgBox("Lost connection with server./n/n" + e); 
       break; 
      } 


      newSprite(listAsString); 

      } 
     } 
    } 

似乎在 listAsString = streamReader.ReadLine暫停();

任何想法?

感謝

詹姆斯

回答

1

ReadLine塊,直到足夠的數據已經到達或流已經結束。讓你的代碼處理這個事實。可能你應該將阻塞IO移動到後臺線程。或者更好的是,使用await