• Jueves 16 de Mayo de 2024, 23:45

Autor Tema:  Timers y threads  (Leído 945 veces)

ikrush

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Timers y threads
« en: Miércoles 11 de Febrero de 2009, 14:57 »
0
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  :(