Страницы

Поиск по вопросам

понедельник, 12 ноября 2018 г.

Как правильно оборвать соединение TcpClient

В клиентском ПО в отдельном потоке идет работа с сервером. Программа в отдельном Task отправляет файл и ждет пока сервер обработает и пришлет ответ. Если пользователь хочет закрыть соединение tcpClient.Close() то в Task выбросится исключение. Как корректно в данной ситуации закрывать соединение?


Ответ

Не дело подставлять подножку своему коду, убивая объект, с которым другой поток ведёт работу. Передайте сигнал о необходимости окончания работы в работающий Task (например, через CancellationToken), и пусть этот Task сам закроет свой TcpClient

Комментариев нет:

Отправить комментарий