27.8 执行定时计算限制操作(Timer)

 

        private static System.Threading.Timer s_Timer;
        static void Main()
        {
            Console.WriteLine("checking status every 2 seconds");
            s_Timer = new System.Threading.Timer(Status, null, Timeout.Infinite, Timeout.Infinite);
            s_Timer.Change(2000, Timeout.Infinite);
            Console.ReadKey();
        }
        private static void Status(object state)
        {
            Console.WriteLine("in status at {0}", DateTime.Now);
            Thread.Sleep(1000);
            //返回前让timer 2s 后再触发
            s_Timer.Change(2000, Timeout.Infinite);
        }

 

        static void Main()
        {
            Console.WriteLine("checking status every 2 seconds");
            Status();
            Console.ReadKey();
        }
        private static async void Status()
        {
            while (true)
            {
                Console.WriteLine("in status at {0}", DateTime.Now);
                //要检查的代码
                //在循环末尾,在不阻塞线程的前提下延迟2s
                await Task.Delay(2000);     //await 允许线程返回
                //2s 之后,某个线程会在await之后介入并继续循环
            }
        }

 

posted @ 2018-12-31 09:56  一只桔子2233  阅读(199)  评论(0编辑  收藏  举报