IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    C# 计时器写法 - 翾燚

    翾燚发表于 2015-10-26 15:42:00
    love 0

        刚才一个交流群里有人问计时器怎么写,正好我也不太熟,就写了个demo,和大家分享一下这个是参考师傅的写的!

    计时器有好多种写法,这里给大家推荐一个性能比较好的,用dispatchertimer做的,本demo是倒计时的,计时的将_seconds--改成++就可以了。不多说了,直接上代码。

    1.这是界面,简单的xaml

     

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <TextBlock Name="txt"
    HorizontalAlignment
    ="Center"
    VerticalAlignment
    ="Center"/>

    <Button Margin="0,0,0,50"
    Content
    ="开始倒计时"
    Background
    ="Red"
    Foreground
    ="White"
    HorizontalAlignment
    ="Center"
    VerticalAlignment
    ="Bottom"
    Click
    ="Button_Click"/>
    </Grid>

     

    2.下面是cs代码,用的dispatchertimer,解释下Interval这个属性,它的作用是确定计时间隔,可以用秒、毫秒之类的。还有个Tick委托,该委托是在超过计时间隔时触发的,也就是Interval的时间间隔设置。

     

    public sealed partial class MainPage : Page
    {
    private DispatcherTimer _countDownTimer;
    private int _seconds = 10;

    public MainPage()
    {
    this.InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
    this.CountDown();
    }

    private void CountDown()
    {
    this._countDownTimer = new DispatcherTimer();
    this._countDownTimer.Interval = TimeSpan.FromSeconds(1);
    this._countDownTimer.Tick += this._countDownTimer_Tick;
    this._countDownTimer.Start();
    }

    private void _countDownTimer_Tick(object sender, object e)
    {
    this._seconds--;
    this.txt.Text = this._seconds.ToString();
    if (this._seconds == 0)
    {
    this.CountDownStop();
    }
    }

    private void CountDownStop()

    {
    if (this._countDownTimer != null)
    {
    this._countDownTimer.Stop();
    this._countDownTimer.Tick -= this._countDownTimer_Tick;
    this._countDownTimer = null;
    }
    }
    }

     

         参考别人的写法写的,性能上还是很优异,有更好的写法欢迎评论。

     


    本文链接:C# 计时器写法,转载请注明。



沪ICP备19023445号-2号
友情链接