Streamreader, вызывающий остановку цикла while

Я пытаюсь использовать потоковое чтение для перехвата строк, которые отправляются через TCPClient, однако вместо постоянного объединения он будет проходить только через цикл.

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

Любые идеи?

Спасибо

Джеймс


person James Eaton    schedule 22.10.2014    source источник


Ответы (1)


ReadLine блокируется до тех пор, пока не будет получено достаточно данных или поток не завершится. Заставьте свой код иметь дело с этим фактом. Вероятно, вам следует переместить блокирующий ввод-вывод в фоновый поток. Или еще лучше, используйте await.

person usr    schedule 22.10.2014