ThreadPool является общим для всех доменов приложений - так как это означает, что потоки могут в конечном итоге переключаться между доменами приложений (потенциально часто!), Было проделано много работы вокруг этого:
http://blogs.msdn.com/b/ericeil/archive/2009/04/23/clr-4-0-threadpool-improvements-part-1.aspx
[...] Фактически, мы уже нарушаем это «правило»: начиная с .NET 3.5, пул потоков CLR поддерживает отдельные очереди FIFO для каждого AppDomain в процессе и дополнительную независимую очередь FIFO для «собственных» рабочих элементов.такие как те, которые поставлены в очередь хостом (ASP.net является основным пользователем этой функции).Мы выполняем циклический перебор между этими рабочими очередями, позволяя каждому выполнить работу в течение некоторого времени, прежде чем перейти к следующему. [...]
Кстати, обратите внимание, что строго говоря, ThreadPool не является общимчерез весь процесс, поскольку CLR v4 позволяет загружать бок о бок с V2, и у каждого будет свой пул потоков.