Последствия отказа от вызова WSACleanup
Я нахожусь в процессе разработки приложения, которое будет работать на безголовом устройстве Windows CE 6.0. Идея состоит в том, чтобы создать приложение, которое будет запускаться при запуске и работать до выключения. (По сути, это будет выглядеть как служба, но приложение легче отлаживать без полного хлопот по остановке / развертыванию / запуску / присоединению к процедуре процесса)
Меня беспокоит то, что произойдет во время разработки. Если я отлаживаю / разворачиваю приложение, я не вижу способа закрыть его дружественным и простым способом. (Не стесняйтесь предложить, если это может быть сделано лучше / удобнее для пользователя) Я просто остановлю отладчик, и в результате WSACleanup не будет вызван.
Теперь вопрос. Каковы последствия того, что WSACleanup не вызывается? Смогу ли я снова запустить и запустить приложение winsock с помощью отладчика? Или будет утечка ресурсов, мешающая мне сделать это?
Заранее спасибо Jef
1 ответ
Я думаю, что комментарии Гарри Джонстона верны. Даже если ваше приложение не имеет пользовательского интерфейса, вы можете найти способ закрыть его изящно. Я предполагаю, что у вас есть один или несколько потоков в циклах, вы можете добавить именованное событие ручного сброса, которое проверяется (или может использоваться для ожидания вместо Sleep()) внутри условия цикла, и создавать небольшое приложение, которое открывает событие, используя то же имя, устанавливает его и выходит. Это также приведет к закрытию приложения-службы. Это может не понадобиться для отладки, но может быть полезно также, если вам нужно обновить программное обеспечение, а для этого требуется, чтобы ваша основная служба не работала.