2009-06-23 15 views
11

Qual è il threadpool personalizzato .NET più consigliato che può avere istanze separate e più di un threadpool per applicazione? Ho bisogno di una dimensione di coda illimitata (creazione di un crawler) e ho bisogno di eseguire un threadpool separato in parallelo per ogni sito che sto analizzando.Threadpool personalizzato .NET con istanze separate

Modifica: Ho bisogno di estrarre questi siti per informazioni il più velocemente possibile, utilizzando un threadpool separato per ogni sito mi darebbe la possibilità di controllare il numero di thread che lavorano su ciascun sito in un dato momento. (Non più di 2-3)

Grazie Roey

+1

Perché dovresti eseguire un threadpool separato per ogni sito ??? – AnthonyWJones

+1

Prenditi un po 'di tempo e guarda questo video di Daniel Moth: http://channel9.msdn.com/pdc2008/TL26/. Scoprirai che la coda illimitata non è la strada per prestazioni illimitate. – Groo

+0

Sono d'accordo con Anthony. Non penso che tu abbia bisogno di più pool di thread. Il pool di thread è lì per gestire e bilanciare il lavoro sull'intero sistema. Se hai più pool finirai per sovraccaricare il tuo computer. non dimenticare che c'è un sovraccarico nella creazione di thread. Questo è il motivo del pool di thread: gestisce con attenzione il numero di thread per una quantità ottimale e divide il lavoro tra questi thread. –

risposta

1

Chiedi Jon Skeet: http://www.yoda.arachsys.com/csharp/miscutil/

Parallel extensions for .Net (TPL) dovrebbe effettivamente funzionare molto meglio se si vuole un gran numero di attività in esecuzione in parallelo.

+1

Viene utilizzato per la parallelizzazione a più di un core della CPU, tuttavia non risolve il mio problema poiché i singoli Task Manager non possono dirmi quando hanno finito di eseguire tutte le loro attività. – Roey

7

Credo che Smart Thread Pool possa farlo. La sua classe ThreadPool è istanziata, quindi dovresti essere in grado di creare e gestire le istanze specifiche del tuo sito come richiesto.

3

Ami bar ha scritto un pool di thread Smart eccellente che può essere istanziato.

un'occhiata here

+0

-1 per risposta duplicata. AdamRalph l'aveva già pubblicato. –

+7

+1 la risposta è stata 2 minuti più tardi. La risposta di Adam Ralphs non era ancora pronta. – Simon

0

Questa libreria NuGet gratuitamente qui: CodeFluentRuntimeClient ha una classe CustomThreadPool che è possibile riutilizzare. È molto configurabile, è possibile modificare la priorità dei thread di pool, il numero, lo stato dell'appartamento COM, persino il nome (per il debug) e anche la cultura.

Problemi correlati