Gets the status of the Windows Service.
public ServiceControllerStatus Status { get; }
The status of the Windows Service.
The status of a Windows Service can be one of the following:
ContinuePending
Paused
PausePending
Running
StartPending
Stopped
StopPending
For more information, see ServiceControllerStatus.
using Leadtools.Dicom.AddIn;
using Leadtools.Dicom.AddIn.Common;
using Leadtools.Dicom.Server.Admin;
public static class ExtendedServiceControllerExample
{
static AutoResetEvent statusChangedEvent = new AutoResetEvent(false);
static ServiceControllerStatus desiredStatus = ServiceControllerStatus.Stopped;
public static void StartService(ExtendedServiceController controller)
{
if (controller.Status != System.ServiceProcess.ServiceControllerStatus.Running)
{
desiredStatus = ServiceControllerStatus.Running;
statusChangedEvent.Reset();
controller.Start();
statusChangedEvent.WaitOne();
}
}
public static void StopService(ExtendedServiceController controller)
{
if (controller.Status != System.ServiceProcess.ServiceControllerStatus.Stopped)
{
desiredStatus = ServiceControllerStatus.Stopped;
statusChangedEvent.Reset();
controller.Stop();
statusChangedEvent.WaitOne();
}
}
public static void ExtendedServiceControllerSample()
{
ExtendedServiceController controller = new ExtendedServiceController("L22_PACS_SCP64");
controller.StatusChanged += Controller_StatusChanged;
StartService(controller);
StopService(controller);
StartService(controller);
StopService(controller);
}
private static void Controller_StatusChanged(object sender, ServiceStatusEventArgs e)
{
ExtendedServiceController controller = sender as ExtendedServiceController;
if (controller != null)
{
try
{
Console.WriteLine($"Status Changed: {e.Status}");
}
finally
{
if (controller.Status == desiredStatus)
{
statusChangedEvent.Set();
}
}
}
}
}
ExtendedServiceController Class