title: .Net CLR Unloading vs shutdown?
body: <blockquote>
    <p>What Causes Finalize Methods to Be Called ?</p>
  </blockquote>
  
  <p>2 answers( of 4 ) to this question are : </p>
  
  <ul>
  <li><p><code>The CLR is unloading an AppDomain</code> When an AppDomain unloads, the CLR considers
  nothing in the AppDomain to be a root, and a garbage collection consisting of
  all generations is performed. </p></li>
  <li><p><code>The CLR is shutting down</code> The CLR shuts down when a process terminates normally
  (as opposed to an external shutdown via Task Manager, for example).</p></li>
  </ul>
  
  <p>I assume that <code>The CLR is unloading an AppDomain</code> is when the program (console [exe] for example) is being closed ( by pressing close / normal end of program)</p>
  
  <p>What about <code>The CLR is shutting down</code> ? <em>continuing the [Exe] program analogy above :</em> </p>
  
  <ul>
  <li>what does it mean ?  How can I <em>ShutDown CLR</em>  ...? </li>
  <li>[in the IIS world] does it mean IIS reset ?</li>
  </ul>
  
  <p>please, can I have small explanation ?</p>