private void RecieveMessage() { isAlive = true; try { while (isAlive) { IMessage message = ChatUser.GetMessage(); if (message is ClientsListMessage cl) { var list = cl.GetUsersList(); this.Invoke(new MethodInvoker(() => { UsersListBox.Items.Clear(); })); this.Invoke(new MethodInvoker(() => { UsersListBox.Items.AddRange(list.ToArray()); })); } else if (message is GoodbyMessage G) { this.Invoke(new MethodInvoker(() => { ChatBox.Text += message.ToOutString(); })); isAlive = false; ChatUser.Close(); } else { this.Invoke(new MethodInvoker(() => { ChatBox.Text += message.ToOutString(); })); } } } catch (SystemException ex) { MessageBox.Show(ex.Message); } finally { ChatUser.Close(); } }