.net的四个Timer类

.NET 包含四个名为 Timer的类。
分别是:
System.Timers.Timer :用作多线程环境中基于服务器的或服务组件; 它没有用户界面,在运行时不可见
System.Threading.Timer :用作多线程环境中基于服务器的或服务组件; 它没有用户界面,在运行时不可见
System.Windows.Forms.Timer(仅 .NET Framework) :最宜用于Windows 窗体应用程序中,并且必须在窗口中使用
System.Web.UI.Timer(仅 .NET Framework):在固定时间间隔内执行异步或同步网页回发的 ASP.NET 组件。

那么如何试用他们呢?

	class Program
	{
	    static void Main(string[] args)
	    {
	        //第一种:System.Timers.Timer
	        System.Timers.Timer systemTimer = new System.Timers.Timer(2000);
	        systemTimer.Elapsed += FunctionTypeOne;
	        systemTimer.AutoReset = true;//是否重复执行
	        systemTimer.Start();//等同于将 Enabled 设置为 true  ----> 引发 Elapsed 事件。
	        //systemTimer.Stop(); //等同于将 Enabled 设置为 false ----> 停止引发 Elapsed 事件。
	        //systemTimer.Dispose(); //释放 Component 使用的所有资源。
	
	        //第二种:System.Threading.Timer
	        System.Threading.Timer threadTimer = new System.Threading.Timer(FunctionTypeTwo);
	        threadTimer.Change(0, 5000);
	        //为什么没有stop()?
	        //因为它与任何托管对象一样,当不存在任何引用时,Timer 可能会进行垃圾回收,
	        //即使 Timer 仍处于活动状态,也不会阻止收集它。
	        //threadTimer.Dispose();
	        Console.ReadLine();
	    }
	
	    private static void FunctionTypeOne(object sender, ElapsedEventArgs e)
	    {
	        Console.WriteLine("这是systemTimer," + e.SignalTime);
	    }
	
	    private static void FunctionTypeTwo(object state)
	    {
	        Console.WriteLine("formTimer," + DateTime.Now.ToString());
	    }
	}

在这里插入图片描述
下面是System.Windows.Forms.Timer

 	public partial class Form1 : Form
    {
        //最宜用于Windows 窗体应用程序中,并且必须在窗口中使用
        private static System.Windows.Forms.Timer formTimer = new System.Windows.Forms.Timer();
        public Form1()
        {
            formTimer.Tick += new EventHandler(FunctionTypeThree);
            formTimer.Interval = 3000;
            formTimer.Start();
        }
        private static void FunctionTypeThree(object sender, EventArgs e)
        {
            MessageBox.Show("formTimer," + DateTime.Now.ToString());
        }
    }

在这里插入图片描述
最后一个是UI.Timer,在 .aspx页中试用

<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" />
        <%--在固定时间间隔内执行异步或同步网页回发的 ASP.NET 组件。--%>
        <asp:Timer ID="Timer1" OnTick="Timer1_Tick" runat="server" Interval="3000" />
         时间:<asp:Label id="TimeOfPrice" runat="server"></asp:Label>
    </form>
     <script runat="server">
        protected void Timer1_Tick(object sender, EventArgs e)
        {
            TimeOfPrice.Text = DateTime.Now.ToLongTimeString();
        }
    </script>
</body>

好了,你们学废了么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值