Estoy intentando escribir código multithreading y enfrentar algunas preguntas de sincronización. Sé que hay muchos mensajes aquí, pero no pude encontrar nada que encaje.sincronización de subprocesos: sin interfaz de usuario
Tengo un System.Timers.Timer
que transcurre cada 30 segundos hasta el DB y comprueba si hay nuevos trabajos. Si encuentra uno, ejecuta el trabajo en el hilo actual (el temporizador abre un nuevo hilo por cada tiempo transcurrido). Mientras el trabajo se está ejecutando, necesito notificar al hilo principal (donde está el cronómetro) sobre el progreso.
Notas:
- no tengo la interfaz de usuario, así que no puedo hacer
beginInvoke
(o usar hilo de fondo) como suelo hacer en WinForms. - Pensé implementar
ISynchronizeInvoke
en mi clase principal, pero eso parece un poco exagerado (tal vez estoy equivocado aquí). - Tengo un evento en mi clase de trabajo y la clase principal se registra e invoco el evento cada vez que lo necesito, pero me preocupa que pueda causar el bloqueo.
- Cada trabajo puede tomar hasta 20 minutos.
- Puedo tener hasta 20 trabajos ejecutándose simultáneamente.
Mi pregunta es:
¿Cuál es la manera correcta de notificar a mi hilo conductor sobre el avance en mi hilo de trabajo?
Gracias por cualquier ayuda.
No se puede notificar a un hilo. Puedes notificar un objeto. Describe mejor esa parte y obtendrás mejores respuestas. –