Foros del Web » Programación para mayores de 30 ;) » .NET »

Ayuda con programa de eventos.

Estas en el tema de Ayuda con programa de eventos. en el foro de .NET en Foros del Web. Hola comunidad! Tengo una duda con un programilla que tengo que hacer .. Tengo una base de datos con unas fechas especificas, de cumpleaños, días ...
  #1 (permalink)  
Antiguo 04/08/2010, 10:31
 
Fecha de Ingreso: abril-2006
Ubicación: Bogotá
Mensajes: 251
Antigüedad: 18 años
Puntos: 14
Ayuda con programa de eventos.

Hola comunidad!

Tengo una duda con un programilla que tengo que hacer ..

Tengo una base de datos con unas fechas especificas, de cumpleaños, días especiales, etc ...

Tengo una aplicación en C# que se conecta a esa base de datos por medio de un eventos sobre un boton y me dice que eventos hay para el día de hoy, el problema que tengo es que no sé cual es la mejor forma de que los eventos se disparen solos .. es decir, si la persona deja abierto el programa X días, que cada día le informe que eventos hay, lanzando alertas .. pero no sé si tengo que hacer manejo de hilos o de que forma puedo hacer que el programa compruebe por ejemplo a X hora todos los días que eventos hay.

Agradezco la ayuda que me puedan brindar, no solicito código ejej .. básicamente ideas de cual manera sería optima para este caso.
  #2 (permalink)  
Antiguo 04/08/2010, 20:58
Avatar de gedarufi  
Fecha de Ingreso: diciembre-2008
Ubicación: Colombia
Mensajes: 540
Antigüedad: 15 años, 5 meses
Puntos: 22
Respuesta: Ayuda con programa de eventos.

Yo utilizaría un Backgroundworker.

Saludos
  #3 (permalink)  
Antiguo 05/08/2010, 21:15
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Ayuda con programa de eventos.

Estoy de acuerdo con gedarufi igualmente puedes utilizar Threads.

Saludos!
  #4 (permalink)  
Antiguo 05/08/2010, 21:19
Avatar de gedarufi  
Fecha de Ingreso: diciembre-2008
Ubicación: Colombia
Mensajes: 540
Antigüedad: 15 años, 5 meses
Puntos: 22
Respuesta: Ayuda con programa de eventos.

La ventaja que yo le veo al Backgroundworker sobre un Thread es que puedes cancelar su ejecución fácilmente así como también mostrar algún tipo de progreso en la tarea si es que lo llegas a necesitar, pero un Thread también es una opción valida.

Saludos
  #5 (permalink)  
Antiguo 06/08/2010, 11:08
 
Fecha de Ingreso: mayo-2002
Ubicación: Guatemala
Mensajes: 160
Antigüedad: 22 años
Puntos: 1
Respuesta: Ayuda con programa de eventos.

El BackgroundWorker es un objeto que inicializara un thread, y capturara las excepciones y te notificara en el thread principal cuando ha concluido el BW, ya sea con error o sin. BW obtiene otro thread desde el pool de threads, invocando a System.Threading.ThreadPool.QueueUserWorkItem.

Lo que si necesitaras es un Timer para que ha cada N minutos se dispare e inicies el BW para que recupere los datos y los guarde en una variable local, y cuando termine el BW, entonces levantas una alerta o actualizas la aplicación, lo que mas te convenga, eso si evita tratar de actualizar desde el thread del BW, por que te tirara error de que no podes modificar el UI desde otro thread.
__________________
José Luis Chávez del Cid
Systems Developer Specialist
ACS Inc./Xerox
Guatemala
  #6 (permalink)  
Antiguo 06/08/2010, 12:15
Avatar de xjuanch0x  
Fecha de Ingreso: septiembre-2009
Mensajes: 125
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Ayuda con programa de eventos.

Yo te recomiendo usar un timer que cada cierto tiempo verifique que hay pendientes para el dia y después simplemente que dispare un evento, ahora aclaro que los hilos se deben usar donde se necesite trabajo asíncrono o que consuma demasiado tiempo la operacion, el hilo tiene su desventaja y es que si el usuario cierre el formulario muere el hilo, mientras que si usas un timer puedes programarlo para que ejecute un proceso el un tiempo determinado o una fecha determinada con una simple calculo de fecha.
__________________
Juan David Torres Vasquez
[email protected]
Microsoft Certified Technology Specialist (MCTS)
DCE Platinum en Visual C# y VB.NET
  #7 (permalink)  
Antiguo 06/08/2010, 12:32
 
Fecha de Ingreso: mayo-2002
Ubicación: Guatemala
Mensajes: 160
Antigüedad: 22 años
Puntos: 1
Respuesta: Ayuda con programa de eventos.

Solo recuerda que el Timer es un componente que se agrega a la forma principal, si cierra la forma principal la aplicación terminas, si necesitas tener un servicio permanente ya te vas por un "servicio de windows", o una aplicación que inicie como "notificación del sistema" en el area de notificaciones de la barra de tareas, que en este caso tambien habra una forma pero hay que sobreescribir que hace la aplicación en el evento FormClose, no cerrar si no minimizar (el comportamiento usual para este tipo de aplicaciones), y solo cerrar si el usuario así decide desde el menu principal, o el contextual del icono del area de tareas...
__________________
José Luis Chávez del Cid
Systems Developer Specialist
ACS Inc./Xerox
Guatemala

Etiquetas: eventos, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:03.