Udostępnij za pośrednictwem


How to: Create a Timer

Microsoft Silverlight will reach end of support after October 2021. Learn more.

To create a timer in Silverlight, use the DispatcherTimer class in the System.Windows.Threading namespace.

The following example shows a simple counter that uses a DispatcherTimer.

Run this sample.

Example

<Grid x:Name="LayoutRoot" Background="White">

  <!-- Just a TextBlock to show the output of the timer. -->
  <TextBlock Loaded="StartTimer" x:Name="myTextBlock" />
</Grid>
public void StartTimer(object o, RoutedEventArgs sender)
{
    System.Windows.Threading.DispatcherTimer myDispatcherTimer = new System.Windows.Threading.DispatcherTimer();
    myDispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 100); // 100 Milliseconds 
    myDispatcherTimer.Tick += new EventHandler(Each_Tick);
    myDispatcherTimer.Start();
}

// A variable to count with.
int i = 0;

// Raised every 100 miliseconds while the DispatcherTimer is active.
public void Each_Tick(object o, EventArgs sender)
{
    myTextBlock.Text = "Count up: " + i++.ToString();
}
    Public Sub StartTimer(ByVal o As Object, ByVal sender As RoutedEventArgs)
        Dim myDispatcherTimer As System.Windows.Threading.DispatcherTimer = New System.Windows.Threading.DispatcherTimer
        myDispatcherTimer.Interval = New TimeSpan(0, 0, 0, 0, 100)
        ' 100 Milliseconds 
        AddHandler myDispatcherTimer.Tick, AddressOf Me.Each_Tick
        myDispatcherTimer.Start
    End Sub

    ' A variable to count with.
    Private i As Integer = 0
    
    ' Raised every 100 miliseconds while the DispatcherTimer is active.
    Public Sub Each_Tick(ByVal o As Object, ByVal sender As EventArgs)
        ("Count up: " + i) = (("Count up: " + i)  _
                    + 1)
        myTextBlock.Text = ("Count up: " + i)
        ToString
    End Sub