ResourceManager.ReleaseAllResources Method ()


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Tells the resource manager to call the Close method on all ResourceSet objects and release all resources.

Namespace:   System.Resources
Assembly:  mscorlib (in mscorlib.dll)

public virtual void ReleaseAllResources()

This method will shrink the working set in a running app. Any future resource lookups on this ResourceManager object will be as expensive as the first lookup, because the resource manager will have to search and load resources again. This can be useful in some complex threading scenarios, where creating a new ResourceManager object is the appropriate behavior.


Starting with the .NET Framework version 2.0, the ReleaseAllResources method is not thread safe with respect to GetObject, GetString, and GetStream operations. The advantage of this change is a performance improvement for multiple threads that access resources. However, if you call the ReleaseAllResources method in one thread while simultaneously getting a resource in another thread, the get operation can throw an ObjectDisposedException exception.

You can also use this method in situations where the managed instances for the resources created by the current resource manager have to be released deterministically, without waiting for the resource manager to go completely out of scope and be garbage collected.


Calling this method does not unload satellite assemblies. To unload satellite assemblies, use the Unload method .


when invoked late-bound through mechanisms such as Type.InvokeMember. Associated enumeration: ReflectionPermissionFlag.MemberAccess.

.NET Framework
Available since 1.1
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top