Создаю сервер с таблицей, которая представляет собой usercontrol c именем Clientlist куда выводится информация о подключенных пользователях. При подключении к серверу, пользователь отправляет ему строку с информацией о себе (IP, имя компьютера) и на основе этой информации формируется строка в таблице. Строка представляет собой второй usercontrol. Clientlist имеет метод на добавление строки с информацией о пользователе
Все приведенные ниже действия происходят в классе Server
Сервер работает асинхронно и соответственно код выглядит примерно следующим образом: Программа доходит до строчки с ожиданием прихода строки
Client client = new Client();
handler.BeginReceive( client.buffer, 0, client.buffer.length, 0, new AsyncCallback(ReadCallback), client);
Как только к серверу приходит строка с информацией вызывается метод ReadCallback
public static void ReadCallback(IAsyncResult ar) {
//Парс строки и заполнение полей класса Client
MainWindow main = new MainWindow();
main.Clientlist.AddClient(client)
//...
}
Приведенный вариант метода ReadCallback, конечно работать не будет, сразу вылетит ошибка о том, что это не STA поток и так далее.
Вот соответственно встал вопрос о том как из метода ReadCallback я могу обратится к своему Clientlist и отрисовать информацию о клиенте на своей форме.
Application.Current.Dispatcher.Invoke(...). – tym32167 Mar 03 '20 at 15:20