如何:监视基于服务器的计时器

更新:2007 年 11 月

Timer 组件根据您指定的时间间隔,定期引发一个名为 Elapsed 的事件。您可以处理这个事件来执行必要的处理。例如,假设您有一个联机销售应用程序,它持续向一个数据库投递销售订单。编译要传送的指令的服务成批处理订单,而不是单独地处理每份订单。您可以使用计时器每 30 分钟启动一次批处理。

为 Elapsed 事件创建处理程序

  1. 创建 Timer 组件的实例并设置必要的属性以使它可以正常工作。有关更多信息,请参见 如何:创建基于服务器的计时器实例

  2. 将事件处理程序 myTimer_Elapsed 连接到 Elapsed 事件。有关更多信息,请参见使用事件。您的代码应类似于:

    AddHandler myTimer.Elapsed, New _
       System.Timers.ElapsedEventHandler(AddressOf Me.myTimer_Elapsed)
    
         myTimer.Elapsed +=
               new System.Timers.ElapsedEventHandler(myTimer_Elapsed);
    
    说明:

    有关此语法的更多信息,请参见在 Windows 窗体中创建事件处理程序

  3. 创建 myTimer_Elapsed 过程并定义要用来处理事件的代码。

    Private Sub myTimer_Elapsed(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEventArgs)
        System.Windows.Forms.MessageBox.Show("Elapsed!", _
           "Timer Event Raised!")
    End Sub
    
     private void myTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            System.Windows.Forms.MessageBox.Show("Elapsed!",
               "Timer Event Raised!");
        }
    

    下面的代码演示如何创建一个 Timer 组件,该组件每 5 秒钟引发一个事件并显示一个对该事件提出警告的消息框:

    Private Sub CreateTimer()
        Dim Timer1 As New System.Timers.Timer()
        Timer1.Interval = 5000
        Timer1.Enabled = True
        AddHandler Timer1.Elapsed, _
           New System.Timers.ElapsedEventHandler(AddressOf Me.Timer1_Elapsed)
    End Sub
    
    Private Sub Timer1_Elapsed(ByVal sender As System.Object, _
       ByVal e As System.Timers.ElapsedEventArgs)
        System.Windows.Forms.MessageBox.Show("Elapsed!", "Timer Event Raised!")
    End Sub
    
     private void CreateTimer()
        {
            System.Timers.Timer Timer1 = new System.Timers.Timer();
            Timer1.Enabled = true;
            Timer1.Interval = 5000;
            Timer1.Elapsed +=
               new System.Timers.ElapsedEventHandler(Timer1_Elapsed);
        }
    
        private void Timer1_Elapsed(object sender,
        System.Timers.ElapsedEventArgs e)
        {
            System.Windows.Forms.MessageBox.Show("Elapsed!",
               "Timer Event Raised!");
        }
    

请参见

任务

如何:创建基于服务器的计时器实例

概念

基于服务器的计时器介绍

参考

Timer 组件概述(Windows 窗体)

其他资源

在 Windows 窗体中创建事件处理程序