Many hosting environments have requirements to unload running code. For example, Web Servers needs to unload user code when that code is replaced with a newer version on disk and the WFC Forms designer needs to unload and reload controls that are actively being developed in the editor. The runtime must support two forms of unloading. A host must be able to immediately unload a domain regardless of its current state. Additionally, a host must be able to tell the runtime to unload a domain when there are no more active threads in the domain.