dotnet/runtime
View on GitHubServiceController.WaitForStatus could use NotifyServiceStatusChange WinAPI to avoid polling
Open
#45,049 opened on Nov 21, 2020
area-System.ServiceProcesshelp wanted
Repository metrics
- Stars
- (17,886 stars)
- PR merge metrics
- (Avg merge 12d 11h) (661 merged PRs in 30d)
Description
Currently, ServiceController WaitForStatus method polls every 250ms to check if the service has reached the desired status. This is not optimal and also not very performant, particularly if the service takes less than 250ms to reach that status. Apparently lost in the mists of time, there was a plan to use the WinAPI function NotifyServiceStatusChange to avoid polling and get instantly notified when the service reaches a specific status.
I'm opening this issue to prevent this potential improvement from getting lost again.
Props to @KalleOlaviNiemitalo for finding this.