Após o FileSystemWatcher ser acionado - Pool de Threads ou segmento Dedicado?

Estou prestes a implementar a solução arquetípica FileSystemWatcher. Eu tenho um diretório para monitorar as criações de arquivos e a tarefa de sugar os arquivos criados e inseri-los em um banco de dados. Geralmente, isso envolve a leitura e o processamento de 6 ou 7, 80 arquivos de texto de caracteres que aparecem a uma taxa de 150mS em rajadas que ocorrem a cada dois segundos, e raramente um arquivo binário de 2 MB também precisará ser processado. Provavelmente será um processo 24/7.

Pelo que li sobre o objeto FileSystemWatcher, é melhor enfileirar seus eventos em um thread e desenfileirar / processá-los em outro thread. O dilema que tenho agora é o que seria o melhor mecanismo de criação do encadeamento que processa. As opções que posso ver são:

Cada vez que recebo um evento FSW, crio manualmente um novo thread (sim, eu sei ... arquitetura idiota, mas eu precisava dizer).

Lance o processamento no pool de threads CLR sempre que eu receber um evento FSW

Na inicialização, crie um segundo encadeamento dedicado para o processamento e use um modelo de produtor / consumidor para lidar com o trabalho. O thread principal enfileira a solicitação e o segundo thread desenfileira-a e executa o trabalho.

Estou tendendo ao terceiro método como o preferido, pois sei que o thread de trabalho sempre será necessário - e provavelmente mais ainda, porque não sinto o pool de threads.

questionAnswers(3)

yourAnswerToTheQuestion