Ho una domanda generale su System.Threading.Threadpool quando viene eseguita in un'applicazione Web su IIS. Supponiamo di eseguire 2 richieste contemporaneamente e di attivare un paio di thread tramite il metodo ThreadPool.QueueUserWorkItem. Le due richieste condividono il ThreadPool o le chiamate al ThreadPool dalle due richieste operano in due pool separati?Threadpool in contesto IIS
Questo è in IIS6 e 7.
Grazie per qualsiasi comprensione.
Quindi, in pratica, ciò significa che l'utilizzo di ThreadPool per le applicazioni Web che devono attivare attività in più thread è una cattiva idea. –
Poiché tutte le richieste Web sono già gestite in modo asincrono, direi che nella maggior parte dei casi non si ottiene alcun beneficio significativo dall'esecuzione delle operazioni nei thread in background nelle applicazioni Web. Probabilmente sarebbe un'eccezione se non si desidera bloccare l'elaborazione di una richiesta di attesa su un'operazione di lunga durata. In questo caso, è possibile attivare un thread in background, eseguire ulteriori operazioni sulla richiesta e infine attendere che si completi prima di inviare la risposta al client. –
Nel mio caso, ho un servizio che viene eseguito in un contesto IIS e che esegue il numero X di richieste in uscita verso motori di ricerca diversi. Questi dovrebbero essere fatti in più thread poiché voglio massimizzare la velocità qui. Quando tutti i thread sono completi, raccolgo i risultati in una lista dei risultati e li restituisco al chiamante. Il motivo per l'utilizzo di un pool in questo caso è solo quello di utilizzare meno memoria, poiché riutilizza i thread nel pool. Ma se utilizzo lo stesso pool utilizzato da IIS, potrebbe non essere una buona classe da usare. –