C#中Timer的触发问题

原创 2015年07月07日 16:21:24

由于上周是考试周,因此博客没有按时更新,心里有些过意不去,感觉自己又偷懒、松懈了。哎,不管怎样,考试总算是结束了。工作重心又重新回到了项目上来,每天又能有时间去写写代码了:)

这是今天突然想起来的一个小问题,很easy,只要简单测试下就能知道结果,不过还是记录下来吧,以免以后忘记。

一、问题描述

C#中有一个Timer控件,用户可以为这个控件设定一个时间间隔,每隔一段时间Timer就会触发一个timer1_Tick事件,那么,假如开始时Timer是禁止使用的,当我们点击一个“开始”按钮,Timer控件启用,那第一次触发这个timer1_Tick事件,是在点击“开始”按钮后立即触发,还是等一段时间间隔后在触发呢?

二、代码

问题很简单,直接测试下就知道答案了,这里直接上代码。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Test
{
    public partial class Form_Timer : Form
    {
        public Form_Timer()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            MessageBox.Show("Hello World!");
        }
    }
}

其中,开始时Timer的Enabled属性为false。

三、结果

直接在这里说结果,就不上图了,如果哪位朋友感兴趣,可以把代码拷下来,自己试一试。

Timer不会在“开始”按钮点击后立即触发,而是在一定时间间隔(假设5s)后在触发,且Timer不会暂停,timer1_Tick触发后会立即进入下一时间间隔,没有等待。

相关文章推荐

关于C#timer 时间精确度的问题

转自:http://bbs.csdn.net/topics/390952917 我想用精确的时间计算,需要精确到毫秒级别,代码运行后发下有误差。请教高人怎么实现。 C# code ...

C# 线程中使用Timer,并向其触发的事件(函数)中传递参数

C#中的三个Timer我就不作说明了,这里要说的是如果你在线程中使用Timer,是不能使用System.Windows.Forms.Timer的,微软的注释很明确:“实现按用户定义的时间间隔引发事件的...

C#程序,有关于控件Timer的

  • 2014年12月16日 19:43
  • 55KB
  • 下载

C#多线程 定时重复调用异步线程即System.Threading.Timer类使用小例

1.System.Threading.Timer计时器提供了一种重复调用异步线程的方法。.Net BCL中有多个Timer类,如用于Windows应用程序的System.Windows.Forms.T...

C#中DispatcherTimer VS Timer

  • 2012年05月31日 10:58
  • 16KB
  • 下载

C# Timer的多线程使用方法

  • 2013年03月29日 10:55
  • 58KB
  • 下载

C#中timer类的用法

C#中timer类的用法关于C#中timer类  在C#里关于定时器类就有3个   1.定义在System.Windows.Forms里   2.定义在System.Threading.Timer类里...
  • N0005
  • N0005
  • 2011年02月28日 09:12
  • 294

C#关于System.Timer的用法

  • 2016年06月28日 16:34
  • 290KB
  • 下载

C# 使用Timer控件显示当前时间

  • 2010年05月28日 15:13
  • 13KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#中Timer的触发问题
举报原因:
原因补充:

(最多只允许输入30个字)