Есть ли хороший шаблон для безопасного отключения потока?
Измените цикл while на следующее:
while (!interrupted){
// Do something
}
// declare interrupted as volatile boolean
volatile bool interrupted;
Проверьте это MSDN пример для подробностей.
Если для прерывистого логического значения установлено значение true, поток выйдет из цикла при проверке условия while.
Есть ли хороший шаблон для безопасного отключения TcpListener и
Клиент
Чтобы избежать дублирования, пожалуйста, отметьте этот ТАК вопрос
Что касается вашего вопроса о том, как прекратить блокирующий поток на ReadLine();
, то следующий listener.Server.Close();
должен выполнить работу и вернуться из вызова блокировки.