Estoy a punto de implementar la solución arquetípica FileSystemWatcher. Tengo un directorio para supervisar las creaciones de archivos y la tarea de absorber archivos creados e insertarlos en un DB. Aproximadamente esto implicará leer y procesar 6 o 7, 80 archivos de texto de char que aparecen a una velocidad de 150 ms en ráfagas que ocurren cada dos segundos, y raramente también se tendrá que procesar un archivo binario de 2 MB. Esto probablemente sea un proceso 24/7.Después de incendios FileSystemWatcher - Grupo de subprocesos o hilo dedicado?
Por lo que he leído sobre el objeto FileSystemWatcher es mejor poner en cola sus eventos en un hilo y luego dequeue/procesarlos en otro hilo. El dilema que tengo ahora es cuál sería el mejor mecanismo de creación del hilo que procesa. Las opciones que puedo ver son:
Cada vez que tengo un evento FSW puedo crear manualmente un nuevo hilo (sí lo sé .. arquitectura estúpida, pero tenía que decirlo).
Tire el procesamiento en el grupo de subprocesos CLR cada vez que tengo un evento FSW
En el arranque, crear un segundo hilo dedicado para la transformación y la utilización de un modelo productor/consumidor para manejar el trabajo. El hilo principal pone en cola la solicitud y el segundo hilo lo quita y realiza el trabajo.
estoy tendiendo hacia el tercer método como el preferido que yo sepa siempre será necesario el hilo de trabajo - y también, probablemente, más aún porque no tengo ni idea de la agrupación de hebras.
+1, agregaría que usar el grupo de subprocesos intentará manejar sus solicitudes simultáneamente en varios subprocesos, lo que no suena como algo bueno para su aplicación. –
Anon .. A partir de las pruebas que he realizado, mi procesamiento debe hacerse bien y verdaderamente en los 150mS, excepto en el caso del procesamiento de archivos binarios, que se ejecutará a aproximadamente 150 mS, pero debería ser una ocurrencia tan rara que habrá un montón de tiempo para ponerse al día si las cosas se ponen en cola. –