Here's a good article called "ASP Guidelines":
http://msdn.microsoft.com/voices/server.aspExcerpt:
A common pitfall is to stuff Visual Basic objects in Session scope. This has the effect of locking a user down to a single thread, and defeats the purpose of a thread pool. Potential users are blocked behind other users as they wait for the thread that created their component to become available. Instead, design stateless components that can be created and destroyed from page to page.