Tengo algunos problemas con .NET's ThreadPool (.NET 4).ThreadPool max threads
He leído que, por defecto, .NET tiene un límite de 25 hilos por procesador, pero según las publicaciones del foro en SO y en otros lugares, puedo aumentar el límite con el siguiente código.
void SetThreads(int threads)
{
ThreadPool.SetMaxThreads(threads, threads);
ThreadPool.SetMinThreads(threads, threads);
}
Sin embargo, cuando me puse lo anterior a un número arbitrariamente alto, por ejemplo, 2000, y la cola de ~ 1000 elementos, todavía sólo tengo ~ 33 hilos de ejecución (.NET CLR toma ~ 5 hilos), y ThreadPool.GetAvailableThreads()
devuelve 1971 hilos restantes.
¿Por qué no funciona el código anterior?
¿Cómo está haciendo cola de tareas en el grupo de subprocesos? Mostrar tu código de prueba podría ser de gran ayuda. –
Su problema es que debería ejecutar _less_ de 33 hilos, no más. –
@Henk Holterman, no es una aplicación grande; es un generador de carga HTTP de wack-job rápido que hice para intentar cargar un servidor web local con un montón de solicitudes. Desafortunadamente no resultó tan bien. – foxy