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