окна службы имеет открытый сокет, который получает данные (в отдельном потоке)Как закрыть блокированный сокет
В ответ на услугу OnShutdown
Я хотел бы, чтобы сигнализировать рабочий поток для завершения работы, но в настоящее время заблокировано на Receive
.
В настоящий момент я нахожусь на Receive
, чтобы проверить, не ожидается ли запрос остановки. Есть ли лучший подход, а не ждать таймаута, чтобы уведомить рабочий поток, чтобы прекратить прием и пройти его логику отключения?
Лучшим подходом является использование асинхронных сокетов. В любом случае, они значительно улучшаются. –
В некотором смысле это асинхронный. Конечно, я не использую BeginReceive - но даже если бы я был, как бы я получил этот поток, чтобы остановить прием, пока он ждет данных. –