응용 프로그램 내에서 서비스를 제어하려고합니다. StartService (MSDN)를 통해 서비스를 시작하면 서비스가 시작될 때까지 약 10 초가 필요하지만 StartService를 호출하면 컨트롤이 즉시 주 응용 프로그램에 다시 제공됩니다.Windows 서비스를 비동기 적으로 중지 중
그러나 ControlService (MSDN) - AFAIK를 통해 서비스를 중지 할 때 StopService가 없습니다. 서비스가 중지 될 때까지 약 10 초 동안 주 응용 프로그램을 차단합니다.
Start: StartServiceW(handle, 0, NULL)
Stop: ControlService(handle, SERVICE_CONTROL_STOP, status)
Windows 서비스를 비 차단/비동기 적으로 중지 할 수있는 방법이 있습니까?
스레드에서 호출 해 보았습니까? 블로킹 호출을 비 블로킹으로 바꾸는 고전적인 접근법 ... –
어떻게 작동하는지 알 수는 없지만'sc' 명령어를 사용하면 서비스가 차단되지 않고 서비스를 중지 할 수 있습니다. 흥미로운 API 함수가 있는지 살펴보십시오. – wilx
이런 식으로 행동하는 특정 서비스가 하나 있습니까? 내 생각 엔 문제의 서비스가 STOP 요청에 제대로 응답하지 않는 것입니다. –