Страницы

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

суббота, 21 декабря 2019 г.

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

#c_sharp


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


Ответы

Ответ 1



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

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

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