А как заставить клиент работать в дополнительном потоке (или таске)? Чтобы соединение не закрывалось. В примерах, которые находил, везде Console.ReadLine() используют.
Там ещё сервер, к которому хочу подключиться, требует пинговать его каждые 10-30 секунд. Как это сделать в потоке? Там же таймера нет.
Вот я и не пойму, как это сделать. Там же нет цикла ожидания сообщений, как у обычных сокетов. Просто .Connect() и всё. Код идёт дальше и метод завершается, как я понял.
Или так и должно быть? Просто переменная сокета нужна глобальная. Я не пробовал.
Но это зафризит весь поток и сообщения от сервера перестанут обрабатываться. И что фризить, если цикла же нет?
Проверил. Сообщения идут, окно таскается. Видимо, оно само синхронизируется. Хотя странно как-то Или может это из-за того что я сообщения в дебаг-консоль вывожу. А если выводить в гуй, то всё крашнется
Только не понятно. Если сделать ws.Send() в основном потоке, он может повиснуть, если будут какие-то глюки со связью