private void SignalShutdownPending()
{
m_logger.Info("Preshutdown Event received");
//DateTime end = DateTime.Now.AddMinutes(5);
//while (end.Ticks > DateTime.Now.Ticks) //delay shutdown to n minutes, testing only
while (m_serviceThreadObj.OnCustomCommand())
{
if (Abstractions.WindowsApi.pInvokes.ShutdownPending(this.ServiceHandle, ref myServiceStatus, new TimeSpan(0, 0, 500)))
{
//m_logger.Info("RequestAdditionalTime suceeded");
}
Thread.Sleep(250);
}
m_logger.Info("RequestAdditionalTime finished");
this.OnStop();
Abstractions.WindowsApi.pInvokes.SetServiceStopped(this.ServiceHandle, ref myServiceStatus);
}