C# Timer 定时器应用

关于C#中timer类 在C#里关于定时器类就有3个:

1.定义在System.Windows.Forms里

2.定义在System.Threading.Timer类里

3.定义在System.Timers.Timer类里

System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中的Timer控件,内部使用API SetTimer实现的。它的主要缺点是计时不精确,而且必须有消息循环,Console Application(控制台应用程序)无法使用。

System.Timers.Timer和System.Threading.Timer非常类似,它们是通过.NET Thread Pool实现的,轻量,计时精确,对应用程序、消息没有特别的要求。              System.Timers.Timer还可以应用于WinForm,完全取代上面的Timer控件。它们的缺点是不支持直接的拖放,需要手工编码。

下面举例说明,System.Timers.Timer定时器的用法。

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;
using System.Timers;
using System.Runtime.InteropServices;
using System.Threading;

namespace Timer001
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }
        //实例化Timer类
        System.Timers.Timer aTimer = new System.Timers.Timer();      

        private void button1_Click(object sender, EventArgs e)
        {
            this.SetTimerParam();
        }

        private void test(object source, System.Timers.ElapsedEventArgs e)
        {
            MessageBox.Show(DateTime.Now.ToString());
        }

        public void SetTimerParam()
        {
            //到时间的时候执行事件
            aTimer.Elapsed += new ElapsedEventHandler(test);
            aTimer.Interval = 1000;
            aTimer.AutoReset = true;//执行一次 false,一直执行true
            //是否执行System.Timers.Timer.Elapsed事件
            aTimer.Enabled = true;
        }
    }
}

实现的效果是:每秒弹出系统当前时间,如下图:


C# Timer 定时器应用,布布扣,bubuko.com

时间: 2024-10-10 01:14:48

C# Timer 定时器应用的相关文章

duilib 界面库 实现timer定时器

看了大神介绍的duilib感觉已被同龄人狠狠地甩在背后.所以痛下决心,之后要多花时间写代码. 大神教程传送门: http://www.cnblogs.com/Alberl/p/3341956.html 现在的问题是想基于duilib实现一个timer定时器.工程基础大概是在 http://www.cnblogs.com/Alberl/p/3343763.html 因为自己的东西是基于大神的东西写的,所以要把大神的教程看得差不多才知道我在说什么.O(∩_∩)O~~ 前台大概长这个样子: 稍微修改了

第二十八(线程的同步、守护线程、Timer 定时器)

/* 模拟ATM取款,不是线程同步机制,多线程同时对一个账户进行操作 t1 和 t2 异步编程模型:t1线程执行t1,t2线程执行的是t2,两个线程之间谁也不等于谁 同步编程模型:t1线程和t2线程执行,当t1线程必须等于t2的线程执行结果之后,t1线程才能执行 这是同步编程模型. 什么时候需要引入同步 1. 为了数据安全,尽管应用程序的使用率低,但是为了保证数据安全性,必须的加入线程同步机制 线程同步机制 使程序变成了(等同)单线程 2. 在什么条件下需要使用线程同步 <1> 必须是多线程环

C#中WebService 的 Timer定时器过段时间后自动停止运行

我用.net做的一个Timer定时器,定时获取短信并给予回复,但大概过了十几个小时以后,Timer定时器会自动停止,再发送短信就不能收到回复,需要在服务器中重新运行定时器才可以,请教各位! 我是在.net framework中的,有一个Global.asax全局应用程序文件,帖代码:public class Global : System.Web.HttpApplication { double iTimerInterval; System.Timers.Timer timer = new Sy

关于C#中Timer定时器的重入问题解决方法

项目中用到了定时器随着服务启动作定时任务,按指定的准点时间定时执行相关操作,但是在指定准点时间内我只想让它执行一次,要避免重入问题的发生. 首先简单介绍一下timer,这里所说的timer是指的System.Timers.timer,顾名思义,就是可以在指定的间隔是引发事件.官方介绍在这里,摘抄如下: Timer 组件是基于服务器的计时器,它使您能够指定在应用程序中引发 Elapsed 事件的周期性间隔.然后可通过处理这个事件来提供常规处理. 例如,假设您有一台关键性服务器,必须每周 7 天.每

java Timer定时器管理类

1.java timer类,定时器类.启动执行定时任务方法是timer.schedule(new RemindTask(), seconds*1000);俩参数分别是TimerTask子类,具体执行定时操作所执行的动作,后一个参数是豪秒,代表间隔多久执行一次.2.TimerTask类,java.util.TimerTask,具体定时执行的操作.里面有个run方法,和线程run方法一样(就是线程).5.Timer是一种定时器工具,用来在一个后台线程计划执行指定任务.它可以计划执行一个任务一次或反复

C#中Timer定时器的使用示例

关于C#中timer类 在C#里关于定时器类就有3个: 1.定义在System.Windows.Forms里 2.定义在System.Threading.Timer类里 3.定义在System.Timers.Timer类里 System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中的Timer控件,内部使用API SetTimer实现的.它的主要缺点是计时不精确,而且必须有消息循环,Console Applic

asp.net中Timer定时器在web中无刷新的使用

最近在做一个项目的时候,web端的数据需要与数据源进行实时同步,并保证数据的准确性,当时,考虑到使用ajax异步刷新技术.但后来在网上查找相关资料时,发现这样做,太浪费资源了,因为ajax的提交请求不应该这么频繁的,只适用于那种手动请求响应的那种,因此这种办法是行不通了,后来,发现asp.net中有一个定时器Timer,可以进行实时同步数据,因此本人就做了一个小小的测试,发现还挺好用的,于是乎就有了下文.如下: aspx页面中的代码: <form id="form1" runat

Timer 定时器

Timer是一个经常使用的东西,它有3种类型的Timer.分别是: 1.定义在System.Windows.Forms里: 2.定义在System.Threading.Timer类里: 3.定义在System.Timers.Timer类里: ◆System.Windows.Forms.Timer 应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中的Timer控件,内部使用API  SetTimer实现的.它的主要缺点是计时不精确,而且必须有消息循环,Con

JAVA Timer定时器使用方法

JAVA  Timer 定时器测试 MyTask.java:package com.timer; import java.text.SimpleDateFormat;import java.util.Date;import java.util.TimerTask; public class MyTask extends TimerTask{        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")