• C# WPF定时器


       最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来。我们都知道计算机技术发展日新月异,速度惊人的快,你我稍不留神,就会被慢慢淘汰!因此:每日不间断的学习是避免被淘汰的不二法宝。

       当然,题外话说多了,咱进入正题!

       最近在做一个WPF项目,我做的模块主要是负责查询。其中一个模块叫做CALLBACKLIST,中文译为联系记录,既然叫联系记录,就少不了打电话,而打电话是手机端的事情。手机端的开发就交给IOS和安卓开发人员,当然,他们所需的服务肯定由我写啦!这个模块的主要业务逻辑是这样的,如下:

       管理员查询联系记录->选择用户并将用户信息插入到临时表S->手机端(IOS,安卓)定时抓取临时表S中的数据(主要是顾客姓名,手机号)->手机端拨打用户电话->手机端将拨打的结果以JSON格式反馈给服务端->服务端处理反馈的数据->服务端定时刷新并显示联系结果。

       根据以上需求,服务端需要写查询Search功能、插入临时表Add To S功能、为手机端提供一个抓取临时数据的服务GetList功能、获取手机端反馈结果并处理SetCallBackList功能、及WPF页面定时刷新。

       至于以上的需求及处理方式本博客只讲解定时器的开发,如下:

       首先,微软为WPF定制了一个专门的定时器DispatcherTimer,这句话很重要,省的瞎用!

       其次,我们需要引入命名空间->using System.Windows.Threading;

       创建定时器对象->DispatcherTimer dispatcherTimer = new DispatcherTimer();

       最后设置定时器:

                //定时查询-定时器
                dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
                dispatcherTimer.Interval = new TimeSpan(0, 0, 60);
                dispatcherTimer.Start();

       在上述代码中,我们EventHandler这个东东叫做定时器回调函数,根据上述的需求,我们要定时刷新联系记录结果,说白了就是定时查询,也就是再执行一次查询方法而已。

    dispatcherTimer.Interval = new TimeSpan(0, 0, 60);->设置定时器的时间间隔。
    最后启动定时器->
    dispatcherTimer.Start();
    然后写回调函数如下:
    /// <summary>
            /// 定时器回调函数
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void dispatcherTimer_Tick(object sender, EventArgs e)
            {
               DoSearch();//执行查询
             }

        至此:WPF定时器就完成了!

        2016-10-25  补充说明:定时器Start()以后,也就是启动以后,要记得及时关上!否则会一直执行下去的!

     @陈卧龙的博客

  • 相关阅读:
    python学习笔记- day10-4【问题:为什么python的多线程不能利用多核CPU?】
    python学习笔记-day10-3【日志模块logging】
    python学习笔记-day10-2【多进程,多线程】
    python学习笔记-day10-01-【 类的扩展: 重写父类,新式类与经典的区别】
    day12-HTML基础之DOM操作
    day12-HTML基础之CSS
    HTTP原理
    day12-HTML
    day11-Jenkins
    day11-python学习笔记(二十六)yaml,ddt
  • 原文地址:https://www.cnblogs.com/chenwolong/p/DispatcherTimer.html
Copyright © 2020-2023  润新知