title: Is ThreadLocal in ASP.NET equivalent to a per request variable?
body: <p>I use a <code>ThreadLocal</code> variable in an ASP.NET <code>HttpHandler</code>. I assumed it will result in a new variable per request.</p>
  
  <p>I have some strange behavior in my application. When a <code>ThreadLocal</code> variable is created and disposed in an ASP.NET page?</p>
  
  <p>What happens if the same thread is used by ASP.NET later for another request? Does it result in a new <code>ThreadLocal</code> variable or the previously created value (which was used with another request) will be used?</p>
  
  <p>If <code>ThreadLocal</code> variables are disposed when the thread is actually disposed, then my assumption fails with ASP.NET (since threads get back to pool and are not unique per request)</p>