Pregunta

Estoy buscando una buena biblioteca, preferentemente en C #, que puedo utilizar en un servicio de Windows y que va a manejar toda la funcionalidad necesaria multihilo.

El servicio se ejecutará cada x minutos, comprobar una base de datos para los procesos para llamar, y para cada una de ellas generará un subproceso y ejecutarlo.

Cada hilo debe manejar excepciones, la tala y tal.

¿Alguna sugerencia?

¿Fue útil?

Solución

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

Descripción del Proyecto

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

  • El número de hilos cambia dinámicamente de acuerdo con la carga de trabajo en las roscas en la piscina.
  • artículos
  • trabajo pueden devolver un valor.
  • Un elemento de trabajo puede ser cancelado.
  • el contexto del subproceso de llamada se utiliza cuando se ejecuta el elemento de trabajo (limitado).
  • Uso del número mínimo de asas de eventos Win32, por lo que el número de identificador de la aplicación no va a explotar.
  • La persona que llama puede esperar a que varios o todos los elementos de trabajo para completar.
  • elementos de trabajo puede tener una devolución de llamada PostExecute, que se llama tan pronto el elemento de trabajo se ha completado.
  • El objeto de estado, que acompaña el elemento de trabajo, puede estar dispuesto de forma automática.
  • excepciones elemento de trabajo son enviados de vuelta a la persona que llama.
  • Los elementos de trabajo tienen prioridad.
  • Los elementos de trabajo de grupo.
  • La persona que llama puede suspender el inicio de un grupo de grupo de subprocesos y elementos de trabajo.
  • Hilos tienen prioridad.
  • Puede ejecutar objetos COM que tienen solo apartamento roscado.
  • Acción de apoyo y los delegados Func.
  • Soporte para WindowsCE (limitado)
  • Los MaxThreads y MinThreads se pueden cambiar en tiempo de ejecución.
  • Cancelar comportamiento se imporved.

Otros consejos

Este es un algo irónico, pero ¿y el .NET Framework? El System.Threading espacio de nombres tiene todo lo necesario para ello.

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

Si necesita una biblioteca de programación que tiene soporte multi-threading, que he usado antes: Quartz.NET

http://quartznet.sourceforge.net/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top