ServiceBase.Dispose Method (Boolean)

Disposes of the resources (other than memory) used by the ServiceBase.

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

protected override void Dispose (
	bool disposing
protected void Dispose (
	boolean disposing
protected override function Dispose (
	disposing : boolean



true to release both managed and unmanaged resources; false to release only unmanaged resources.

Call Dispose in your derived class (and through it, in the ServiceBase class) when you are finished using the derived class. The Dispose method leaves the derived class in an unusable state. After calling Dispose, you must release all references to the derived class and ServiceBase so the memory they were occupying can be reclaimed by garbage collection.


Always call Dispose before you release your last reference to the class derived from ServiceBase. Otherwise, the resources ServiceBase and the derived class are using will not be freed until garbage collection calls the objects' destructors.

OnStop is often implemented to process the code in OnPause, combined with a call to Dispose. If you choose to do this in your derived class, it is customary to implement OnStart to allocate whatever Dispose released.

  • Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see .

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

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0

Community Additions