Hola a tod@s!
Antes de nada enhorabuena por éste magnífico foro.
Me presento con un problema que no consigo resolver, voy a tratar de simplificarlo:
Tengo una librería con un par de timers (System.Threading.Timer) llamados Timer1 y Timer2.
El Timer1 salta cada segundo y llama a un procedimiento que inserta un valor en una lista genérica Lista1.
El Timer2 salta cada 10 segundos y llama a otro procedimiento que inserta un valor en una lista genérica Lista2.
La librería tiene un método Read que cada 10 minutos es consultado desde una aplicación.
El método read procesa el contenido de las dos listas Lista1 y Lista2 y devuelve el resultado.
Para agilizar el proceso el método Read clona las listas y vacía las listas originales de modo que los timers Timer1 y Timer2 puedan seguir insertando valores en las listas, mientras que él procesa las listas clonadas.
El problema radica en que mientras se está ejecutando el método Read los timers dejan de hacer su trabajo a pesar de que, creo entender, se están ejecutando en hilos paralelos e independientes. Por lo cual en las siguientes llamadas al método Read las listas tienen menos datos de los que deberían tener.
A ver si me podeís aclarar un poco el tema