6

Estoy buscando una buena biblioteca, preferiblemente en C#, que puedo usar en un servicio de Windows y manejará toda la funcionalidad de subprocesamiento múltiple necesaria.Biblioteca de subprocesos para el servicio de Windows multiproceso

El servicio se ejecutará cada x minutos, verificará en una base de datos los procesos para llamar, y para cada uno de ellos genere un hilo y lo ejecute.

Cada hilo debe manejar excepciones, registro y tal.

¿Alguna sugerencia?

+0

¿Alguna solución final con el código fuente completo de muestra? – Kiquenet

Respuesta

4

consideran este proyecto http://www.codeplex.com/smartthreadpool

Descripción del proyecto

inteligente del grupo de subprocesos es un grupo de subprocesos escrito en C#. Es mucho más avanzado que el grupo de subprocesos incorporado .NET. Aquí es una lista de las características de la piscina hilo:

  • El número de hilos cambia dinámicamente de acuerdo con la carga de trabajo en las roscas en la piscina.
  • Los elementos de trabajo pueden devolver un valor.
  • Se puede cancelar un elemento de trabajo.
  • El contexto del hilo de la persona que llama se utiliza cuando la tarea se ejecuta (limitada).
  • Uso del número mínimo de identificadores de eventos Win32, por lo que el número de identificadores de la aplicación no explotará.
  • La persona que llama puede esperar que se completen varios o todos los elementos de trabajo.
  • El elemento de trabajo puede tener una devolución de llamada PostExecute, que se invoca tan pronto como se completa el elemento de trabajo.
  • El objeto de estado que acompaña al elemento de trabajo se puede eliminar automáticamente.
  • Las excepciones de elementos de trabajo se envían nuevamente a la persona que llama.
  • Los elementos de trabajo tienen prioridad.
  • Grupo de elementos de trabajo.
  • El llamante puede suspender el inicio de un grupo de subprocesos y un grupo de elementos de trabajo.
  • Los subprocesos tienen prioridad.
  • Puede ejecutar objetos COM que tienen un solo apartamento con rosca.
  • Acción de apoyo y delegados de Func.
  • Soporte para WindowsCE (limitado)
  • Las MaxThreads y MinThreads se pueden cambiar en tiempo de ejecución.
  • Se ha eliminado el comportamiento de cancelación.
+1

Fahad, Esto es exactamente lo que estoy buscando. Esperaré si alguien les tiene una mejor idea, de lo contrario marcaré la tuya como respuesta. Gracias – anon2009

5

Esto es un poco irónico, ¿pero qué hay del .NET Framework? El espacio de nombres System.Threading tiene todo lo que necesita para esto.

Si puede usar .NET 4, o el backport en el Rx Framework, la Biblioteca de tareas paralelas puede hacer que esto sea un poco más fácil también, pero incluso sin eso, el marco estándar tiene todo lo que necesita .

+0

Reed, Estoy buscando una solución completa, una implementación de código que utiliza System.Threading. No, aún no puedo usar 4.0. Gracias. – anon2009

+0

¿Se puede usar el Rx Framework? Incluye un respaldo completo de la biblioteca Task Paralelo, que proporciona una gran cantidad de usabilidad (mucho mejor que cualquier lib de terceros que haya visto hasta la fecha). –

2

Si necesita una biblioteca de programación con soporte para múltiples subprocesos, he usado esto antes: Quartz.NET

http://quartznet.sourceforge.net/

+0

¿Me puede dar un ejemplo sobre cómo lo usó, por favor? – anon2009

+0

Hay un buen tutorial en el sitio, pero básicamente configura los "activadores" de programación (basados ​​en la sintaxis cron) que determinan cuándo se activa un trabajo, luego asocia trabajos específicos a los desencadenadores. El "Programador" de Quartz.NET maneja todos los tiempos por usted e invoca sus trabajos a las horas establecidas. http://quartznet.sourceforge.net/tutorial/index.html –

+0

Lo usamos para iniciar consultas periódicas de bases de datos, que a su vez provocó que otras acciones se activaran. –

Cuestiones relacionadas