Domanda

Ho una domanda di carattere generale su System.Threading.Threadpool se eseguito in un'applicazione web su IIS. Supponiamo di avere 2 richieste eseguite in una sola volta, e abbiamo il fuoco su un paio di fili attraverso il metodo ThreadPool.QueueUserWorkItem. Saranno i due richieste condividere il ThreadPool, o saranno le chiamate al ThreadPool dalle due richieste operare in due piscine separate?

Questo è in IIS6 e 7.

Grazie per qualsiasi comprensione.

È stato utile?

Soluzione

Ecco una citazione dalla documentazione di MSDN sulla classe ThreadPool :

  

C'è una piscina thread per ogni processo.   Il pool di thread ha una dimensione predefinita   250 thread di lavoro per disponibili   processore e completamento 1000 I / O   le discussioni.

In IIS6 e IIS7 qualsiasi applicazione ASP.NET è ospitato all'interno di un unico processo ( w3wp.exe ) attraverso l'infrastruttura pool di applicazioni.
un pool di applicazioni in grado di ospitare più applicazioni web di il loro mantenimento in diversi AppDomain, ma funziona all'interno di un processo fisico sul server.
Questi due fatti significano in pratica che tutte le discussioni di un'istanza di applicazione web in esecuzione vengono eseguiti all'interno dello stesso pool di thread .NET.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top