.net中的3个Timer

来源:互联网 发布:天敏网络机顶盒价格 编辑:程序博客网 时间:2024/06/05 20:54

一、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
原创粉丝点击