ServiceBase.CanStop Property

Gets or sets a value indicating whether the service can be stopped once it has started.

Namespace: System.ServiceProcess
Assembly: System.ServiceProcess (in system.serviceprocess.dll)

public bool CanStop { get; set; }
/** @property */
public boolean get_CanStop ()

/** @property */
public void set_CanStop (boolean value)

public function get CanStop () : boolean

public function set CanStop (value : boolean)

Not applicable.

Property Value

true if the service can be stopped and the OnStop method called; otherwise, false.

Exception typeCondition


The service has already been started. The CanStop property cannot be changed once the service has started.

When Stop is called on a service, the Service Control Manager (SCM) verifies whether the service accepts Stop commands using the value of CanStop. For most services, the value of CanStop is true, but some operating system services, for example, do not allow the user to stop them.

If CanStop is true, the Stop command is passed to the service and the OnStop method is called if it is defined. If OnStop is not implemented in the derived class, the SCM handles the Stop command through the empty base class ServiceBase.OnStop method.

The following example shows the use of the CanStop property to indicate that a class derived from ServiceBase can handle the event. This example is part of a larger example provided for the ServiceBase class.

public SimpleService()
    CanPauseAndContinue = true;
    CanHandleSessionChangeEvent = true;
    ServiceName = "SimpleService";

Windows 98, Windows Server 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0