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

Ejecutar funcion cada cierto tiempo

Estas en el tema de Ejecutar funcion cada cierto tiempo en el foro de .NET en Foros del Web. Hola: por acá nuevamente. Tengo una aplicación en VB con un WinForm que ejecuta un insert a una bd cuando se cumplen ciertas condiones. Pero ...
  #1 (permalink)  
Antiguo 15/10/2008, 20:24
 
Fecha de Ingreso: abril-2008
Mensajes: 208
Antigüedad: 16 años, 1 mes
Puntos: 2
Ejecutar funcion cada cierto tiempo

Hola:

por acá nuevamente.
Tengo una aplicación en VB con un WinForm que ejecuta un insert a una bd cuando se cumplen ciertas condiones. Pero quiero que esta tarea se ejecute de forma automática cada cierto tiempo, (por ejemplo cada 1 hora u otro lapso) la idea es que un timer u otro control llegado el lapso indicado, revise si se cumplen las condiciones y si es asi ejecute el código.

Es posible hacer esto?? y como???

desde ya gracias

acá hay un post algo similar pero era para un web form y no llegue a mucho
http://www.forosdelweb.com/f29/ejecu...tiempo-168686/
  #2 (permalink)  
Antiguo 16/10/2008, 05:49
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Ejecutar funcion cada cierto tiempo

Hola.

Con un timer puedes perfectamenet ejecutar una acción cada determinada cantidad de tiempo llame a un procedimiento o algo, es muy facil, puedes ver mas detalles ca:

http://www.vbdotnetheaven.com/Upload...erControl.aspx

Cualquier duda avisanos.
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #3 (permalink)  
Antiguo 16/10/2008, 12:45
 
Fecha de Ingreso: abril-2008
Mensajes: 208
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Ejecutar funcion cada cierto tiempo

Ok Gracias.

Mira encontré lo siguiente en http://www.recursosvisualbasic.com.a...trol_timer.htm
Más algunos ajustes sacados de otros ejemplos llegué a esto.

Código:
Option Explicit
' Cantidad de minutos para el intervalo del timer
Const INTERVALO_EN_MINUTOS_SELECT As Integer = 7   ' determina la cantidad de minutos  de trigger del timer
Const INTERVALO_EN_MINUTOS_INSERT As Integer = 9  ' determina la cantidad de minutos  de trigger del timer
Dim cont As Long   'Contador.
Dim Tiempo As String  'Tiempo total transcurrido.
Código:
Private Sub Timer2_Timer()

cont = cont + 1
' cronometro en label lblcrono
Tiempo = Format(Int(cont / 3600) Mod 24, "00") & ":" & _
         Format(Int(cont / 60) Mod 60, "00") & ":" & _
         Format(Int(cont / 1) Mod 60, "00") ' & ":" & _
         Format(cont Mod 10, "00") ' milisegundos
         lblcrono.Caption = Tiempo
         
' comprueba que los segundos no sea igual a la cantidad de minutos _
  que queremos ,valor fijado en la constante INTERVALOS_EN_MINUTOS
  
  If (cont * 60) = ((INTERVALO_EN_MINUTOS_SELECT * 60) * 60) Then
   ' reestablece los valores  a 0, para iniciar  otro ciclo
  ' cont = 0
   ConecCC_Click
   ConsultaCC_Click
   
   Else
  If (cont * 60) >= (INTERVALO_EN_MINUTOS_INSERT * 60) * 60 Then
   ' reestablece los valores  a 0, para iniciar  otro ciclo
   cont = 0
    Label15.Caption = "Actualizado"
    InsertCall_Click
    End If

End If
End Sub
En sí funciona y hace lo que necesito,,..pero... no me deja conforme el tiempo, no logro subir mas de 9 minutos, al fijar en 10 el valor de la constante "Const INTERVALO_EN_MINUTOS_INSERT As Integer = 9 " me arroja un error que dice "error 6 en ... desbordamiento"
¿Es posible salvar esto? necesito un lapso de al menos 1 hora.

una vez más gracias

PD: El interval del timer lo tengo ajustado a 1000
  #4 (permalink)  
Antiguo 16/10/2008, 18:47
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Ejecutar funcion cada cierto tiempo

Hola.
Muy bueno el enlace sobre el timer, gracias por compartirlo.
Lo que tenes que hacer es ponerle en la propiedad interval a tu timer un valor de directamente en la cantidad de segundos que represente tu diez minutos, como 1000 son un segundo, para diez minutos seria un valor de 600000. Me parece que asi si le pones a tu constante un valor de 600000 no vas a tener problemas.

Ahora si vos necesitas hacer otra cosa comentame.
Suerte!!!.
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
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 04:08.