Me encanta ThreadPool. Me hace la vida mejor. Sin embargo, mi amor puede haberse convertido en una relación abusiva de la que necesito escapar, así que necesito algunos consejos de mis hermanos SO (y presumiblemente hermanas, aunque todavía no he visto ninguna evidencia real de eso).¿Puedo particionar el C# System.Threading.ThreadPool?
Mi problema básico es que tengo varias bibliotecas diferentes que están usando threadpool de forma no coordinada, y la posibilidad de quedarse sin hilos es posible. Esperaba que hubiera alguna manera de dividir el ThreadPool para poder dar un determinado hilo de clase 1, otros 20 hilos, otros 5 hilos, etc.
Sé que podría escribir mi propia implementación de ThreadPool. No quiero hacer eso, porque soy flojo. Entonces, ¿hay una solución simple ya disponible?
Actualmente estoy obligado a utilizar el 3.5 CLR. Sé que muchas de estas cosas se vuelven más fáciles en 4.0.
One J.Skeet ha escrito un grupo de subprocesos configurables en [MiscUtils] (http://www.yoda.arachsys.com/csharp/miscutil/), una biblioteca de utilidades. – Ani
@Ani: Sí, pero ese es un código muy antiguo, mal probado y casi con seguridad con varios defectos. No lo eliminaré de MiscUtil, pero no voy a promocionarlo en ningún lado. Esperemos que se haya implementado mejor en otro lugar :) –
Encontré SmartThreadPool unos minutos después de hacer esta pregunta. Parece que mi mejor opción sería comenzar a usar eso. Me gusta especialmente que las excepciones se devuelvan a la persona que llamó originalmente; esa característica sola probablemente sea suficiente para hacer que sea preferible a System.Threading.ThreadPool. –