zoukankan      html  css  js  c++  java
  • C# 计时器写法

        刚才一个交流群里有人问计时器怎么写,正好我也不太熟,就写了个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语言变量的内存分布测试程序
    常用ARM指令集及汇编_破解
    CPU读取内存0x30000000地址4个字节数据
    打印十六进制字符串查看内存地址
    JZ2440串口打印字符作为调试
    搭建Linux3.4.2内核编辑环境
    网卡驱动程序
    同步互斥阻塞
    poll机制分析[转]
    安装、配置、启动FTP、SSH或NFS服务
  • 原文地址:https://www.cnblogs.com/xuanyishare/p/4912882.html
Copyright © 2011-2022 走看看