/// <summary> /// Listens for connections and creates a thread for each client /// </summary> private void Listen() { try { while (ServerStatus) { TcpClient clientData = DataListener?.AcceptTcpClient(); if (clientData != null) { Application.Current.Dispatcher.Invoke((Action) delegate // <--- HERE { ConnectedClients.Add(new NetworkClient(clientData.Client.RemoteEndPoint.ToString())); }); Task.Run(() => ClientHandler(clientData)); } } } catch // server went offline { MessageBox.Show("Server is offline, connection listening stopped", "Message"); } }