Imports System.Windows.Threading

Public Class DlgRangos
  Private temporizador As DispatcherTimer

  Public Sub New()
    CrearTemporizador()
    InitializeComponent()
    temporizador.Start()
  End Sub

  Private Sub CrearTemporizador()
    temporizador = New DispatcherTimer()
    temporizador.Interval = New TimeSpan(0, 0, 1)
    AddHandler temporizador.Tick, AddressOf Temporizador_Tick
  End Sub

  Private Sub Temporizador_Tick(sender As Object, e As EventArgs)
    Dim inc As Integer = 1 ' incremento
    Dim tpHecho As Integer = 0, carga As Integer = 1000 ' la cuenta es hasta 1000
    Dim cuenta As Integer = Convert.ToInt32(etContador.Content) + inc
    etContador.Content = Convert.ToString(cuenta)
    ' Mostrar progreso
    tpHecho = CInt(Math.Truncate(CDbl(cuenta) / carga * 100))
    If tpHecho > bpCuenta.Value Then
      bpCuenta.Value = tpHecho
    End If
    If cuenta = carga Then temporizador.Stop()
  End Sub

  Private Sub desIntervalo_ValueChanged(sender As System.Object, e As System.Windows.RoutedPropertyChangedEventArgs(Of System.Double))
    temporizador.Interval = New TimeSpan(100000 * CLng(desIntervalo.Value)) ' ticks
  End Sub
End Class
