Im Grunde nicht viel, es geht darum, wie ASP.NET und IIS I/O-Wait-Objekte zuweisen und die Konkurrenz und Latenz der Kommunikation über das Netzwerk und die Übertragung von Daten verwalten.
E/A-Threads werden als solche reserviert, da sie E/A ausführen (wie der Name schon sagt) und möglicherweise auf "lange" Zeiträume (Hunderte von Millisekunden) warten müssen. Sie können auch optimiert und anders verwendet werden, um die I/O-Completion-Port-Funktionalität im Windows-Kernel zu nutzen. Ein einzelner I/O-Thread verwaltet möglicherweise mehrere Completion-Ports, um den Durchsatz aufrechtzuerhalten.
Windows hat viele Funktionen für den Umgang mit E/A-Blockierung, während ASP.NET/.NET ein einfaches Konzept von "Thread" hat. ASP.NET kann für E/A optimieren, indem mehr der nicht verwalteten Threading-Funktionen im Betriebssystem verwendet werden. Sie möchten dies nicht ständig für jeden Thread tun, da Sie viele Fähigkeiten verlieren, die .NET Ihnen gibt, weshalb es einen Unterschied gibt, wie die Threads verwendet werden sollen.
Worker Threads sind Threads, auf denen normale "Arbeit" oder einfach nur Code/Verarbeitung geschieht. Es ist unwahrscheinlich, dass Worker-Threads viel blockieren oder auf irgendetwas warten, und sie werden nur kurz ausgeführt. Daher ist eine aggressivere Planung erforderlich, um die Verarbeitungsleistung und den Durchsatz zu maximieren.
[Bearbeiten]: Ich fand auch diese Verbindung, die auf diese Frage besonders relevant ist: http://blogs.msdn.com/ericeil/archive/2008/06/20/windows-i-o-threads-vs-managed-i-o-threads.aspx