Принципиально не много, это все о том, как ASP.NET и IIS распределяют объекты ожидания ввода-вывода и управляют конфликтами и задержками при обмене данными по сети и передаче данных.
Потоки ввода / вывода выделены как таковые, потому что они будут выполнять ввод / вывод (как следует из названия) и, возможно, придется ждать «длинные» периоды времени (сотни миллисекунд). Они также могут быть оптимизированы и использованы по-разному, чтобы использовать преимущества портов завершения ввода-вывода в ядре Windows. Один поток ввода-вывода может управлять несколькими портами завершения для поддержания пропускной способности.
Windows обладает множеством возможностей для борьбы с блокировкой ввода / вывода, тогда как ASP.NET/.NET имеет простое понятие «поток». ASP.NET может оптимизировать ввод-вывод, используя больше возможностей неуправляемой потоковой обработки в ОС. Вы не захотите делать это все время для каждого потока, поскольку теряете много возможностей, которые дает вам .NET, поэтому существует различие между тем, как потоки предназначены для использования.
Рабочие потоки - это потоки, в которых происходит обычная "работа" или просто простой код / обработка. Рабочие потоки вряд ли будут сильно блокировать или ждать чего-либо и будут работать недолго, и поэтому требуют более агрессивного планирования для максимизации вычислительной мощности и пропускной способности.
[Редактировать]: Я также нашел эту ссылку, которая имеет особое отношение к этому вопросу:
http://blogs.msdn.com/ericeil/archive/2008/06/20/windows-i-o-threads-vs-managed-i-o-threads.aspx