.net中的3个Timer

一、System.Timers.Timer并不是调用Start方法就执行,而是在过了设定的周期再调用Start才执行(System.Windows.Forms.Timer也一样)。
获取或设置一个值,该值指示 Timer 是应在每次指定的间隔结束时引发 Elapsed 事件,还是仅在指定的间隔第一次结束后引发该事件。
如果 Timer 应在每次间隔结束时引发 Elapsed 事件,则为 true;如果它仅在间隔第一次结束后引发一次 Elapsed 事件,则为 false。 默认值为 true。 

using System.Timers;
namespace ConsoleApplication1
{
    class Program
    {
        static Timer t1 = new Timer(2000);


        static void t1_Elapsed(object sender, ElapsedEventArgs e)
        {
            Console.WriteLine("timer run...");
        }
        static void Main(string[] args)
        {
            t1.Elapsed += new ElapsedEventHandler(t1_Elapsed);
            t1.Start();
            Console.ReadLine();
        }
    }
}


二、System.Windows.Forms

using System.Windows.Forms;

namespace ConsoleApplication1
{
    class Program
    {
        static Timer myTimer = new Timer();
        static bool exitFlag = false;

        static void Main(string[] args)
        {
            myTimer.Tick += new EventHandler(myTimer_Tick);

            myTimer.Interval = 5000;
            myTimer.Start();

            while (exitFlag == false)
            {
                Application.DoEvents();//处理队列中的消息。不加这句,将不进入Timer的Tick事件
            }
        }

        static void myTimer_Tick(object sender, EventArgs e)
        {
            myTimer.Stop();

            if (MessageBox.Show("Continue running?", "友情提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                myTimer.Enabled = true;
            }
            else
            {
                exitFlag = true;
            }
        }
    }
}

三、System.Threading.Timer

这是个变态,MSDN上的demo没看懂。还是尽量少用这个。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值