Так что вам нужно будет где-то цикл, чтобы ваша программа продолжала проверять поток. Обычно проще всего было с булевым индикатором, так что перечислим это:
Boolean openConnection = false;
Это должно быть на уровне класса. Затем внутри вашего метода подключения вы зацикливаетесь и слушаете. Как то так.
NetworkStream ns = server.GetStream();
openConnection = True;
Task.Factory.StartNew(() =>
{
while (openConnection)
{
ns.Read(data, 0, data.Length);
var stringData = Encoding.ASCII.GetString(data, 0, 1024);
dataToAdd.Add(stringData);
foreach (var list in dataToAdd)
{
txt_BarcodeDisplay.Text += list + Environment.NewLine;
}
Thread.Sleep(2000);
}
}
);
Так что это много для распаковки, но в основном вы говорите, читайте то, что приходит из сети, делайте это, пока для переменной openConnection не будет установлено значение false. Да, и поскольку мы не хотим привязывать процессор к 100%, переведите нить в спящий режим, чтобы мы проверяли только каждые 2 секунды.
Это грубое начало, но я надеюсь, что оно даст вам представление о том, в каком направлении вам следует идти.