Всем доброго времени суток.
Поставлена задача написать широковещательный чат на UDP, используя Windows Forms, на C#. Создается глобальный поток:
Thread receiveThread = new Thread(new ThreadStart(ReceiveMessage));
Метод ReceiveMessage - статический:
private static void ReceiveMessage()
{
UdpClient receiver = new UdpClient(localPort); // UdpClient для получения данных
receiver.JoinMulticastGroup(remoteAddress, 20);
IPEndPoint remoteIp = null;
string localAddress = LocalIPAddress();
try
{
while (true)
{
byte[] data = receiver.Receive(ref remoteIp);
//if (remoteIp.Address.ToString().Equals(localAddress))
// continue;
string message = Encoding.Unicode.GetString(data);
MessageBox.Show(message);
}
}
catch (Exception)
{
}
finally
{
receiver.Close();
}
}
Необходимо, чтобы при получении сообщения оно выводилось в ListBox. К сожалению, на данный момент единственный рабочий вариант - использовать MessageBox, а это совсем не то.
Заранее добавлю, что программа должна работать на .NET Framework 4, а лучше 3.5.
Знаю, что нужно копать в сторону асинхронных потоков, но сам пока не сумел встать на верный путь, поэтому прошу помощи здесь.
Заранее спасибо.
listBox1.BeginInvoke.... Читать только верх темы - не есть хорошо... – EvgeniyZ Oct 02 '18 at 18:36