2009-06-23 19 views
11

¿Cuál es el threadpool personalizado .NET más recomendado que puede tener instancias separadas, es decir, más de un threadpool por aplicación? Necesito un tamaño de cola ilimitado (crear un rastreador) y necesito ejecutar un threadpool separado en paralelo para cada sitio que estoy rastreando..NET Threadpool personalizado con instancias separadas

Editar: Necesito explotar estos sitios para obtener información lo más rápido posible, el uso de un hilo separado para cada sitio me daría la capacidad de controlar el número de subprocesos que trabajan en cada sitio en un momento dado. (No más de 2-3)

Gracias Roey

+1

¿Por qué necesitarías ejecutar un hilo separado para cada sitio? – AnthonyWJones

+1

Tómese su tiempo y vea este video de Daniel Moth: http://channel9.msdn.com/pdc2008/TL26/. Descubrirá que la cola ilimitada no es el camino hacia un rendimiento ilimitado. – Groo

+0

Estoy de acuerdo con Anthony. No creo que necesite múltiples grupos de hilos. El grupo de subprocesos está ahí para administrar y equilibrar el trabajo en todo el sistema. Si tiene varias piscinas, terminará sobrecargando su máquina. no olvides que hay una sobrecarga para crear hilos. Este es el propósito del grupo de subprocesos: administra cuidadosamente el número de subprocesos hasta una cantidad óptima y divide el trabajo entre estos subprocesos. –

Respuesta

1

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

Parallel extensions for .Net (TPL) en realidad debería funcionar mucho mejor si quieres un gran número de tareas en ejecución en paralelo.

+1

Esto se utiliza para paralelizar a más de un núcleo de CPU, sin embargo, no resuelve mi problema ya que los administradores de tareas individuales no pueden decirme cuándo terminaron de ejecutar todas sus tareas. – Roey

7

Creo que Smart Thread Pool puede hacer esto. Su clase ThreadPool está instanciada, por lo que debería poder crear y administrar las instancias específicas de su sitio por separado, según lo requiera.

3

Ami bar escribió un excelente grupo de subprocesos inteligentes que se pueden crear instancias.

echar un vistazo here

+0

-1 para respuestas duplicadas. AdamRalph ya había publicado eso. –

+7

+1 la respuesta fue 2 minutos más tarde. La respuesta de AdamRalphs aún no estaba al tanto. – Simon

0

Esta biblioteca Nuget gratis aquí: CodeFluentRuntimeClient tiene una clase CustomThreadPool que se puede reutilizar. Es muy configurable, puede cambiar la prioridad, el número, el estado del apartamento COM, incluso el nombre (para la depuración) de subprocesos de grupo, y también la cultura.

Cuestiones relacionadas