前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CSharp中的倒计时

CSharp中的倒计时

作者头像
码客说
发布2023-11-16 09:30:32
1490
发布2023-11-16 09:30:32
举报
文章被收录于专栏:码客

简单示例

代码语言:javascript
复制
private void Countdown()
{
    // 设置倒计时时间(以毫秒为单位)
    int countdownTime = 5000;
    Stopwatch stopwatch = Stopwatch.StartNew();
    while (stopwatch.ElapsedMilliseconds < countdownTime)
    {
        // 剩余时间 = 倒计时时间 - 已经流逝的时间
        int remainingTime = countdownTime - (int)stopwatch.ElapsedMilliseconds;

        // 输出剩余时间
        Console.WriteLine(
            @"Remaining Time: {0} milliseconds",
            remainingTime
        );

        // 可以根据需要选择适当的时间间隔,这里选择1秒
        Thread.Sleep(1000);
    }
    Console.WriteLine(@"Countdown finished!");
}

项目示例

代码语言:javascript
复制
private bool _isShowMinuteWin;
private bool _isShowSecWin;
private MessageWinMinute _messageWinMinute;
private MessageWinSec _messageSecWinSec;

private void Countdown()
{
    new Thread(
        () =>
        {
            // 设置倒计时时间(以毫秒为单位)
            int countdownTime = ZCommonData.ClassTotalSec * 1000;
            Stopwatch stopwatch = Stopwatch.StartNew();
            while (stopwatch.ElapsedMilliseconds <= countdownTime)
            {
                // 剩余时间(秒) = 倒计时时间 - 已经流逝的时间
                int remainingSec = (countdownTime - (int)stopwatch.ElapsedMilliseconds) / 1000;

                // 输出剩余时间
                Console.WriteLine(
                    @"Remaining Time: {0} seconds",
                    remainingSec
                );
                //当剩余时间小于等于3分钟 并且提示窗未弹出 则弹出提示窗
                if (remainingSec <= 10)
                {
                    Dispatcher.Invoke(
                        () =>
                        {
                            if (!this._isShowSecWin)
                            {
                                this._isShowSecWin = true;
                                this._messageSecWinSec = new MessageWinSec();
                                this._messageSecWinSec.Show();
                                this._messageSecWinSec.SetSec(remainingSec);
                                this._messageWinMinute?.Close();
                            }
                            this._messageSecWinSec?.SetSec(remainingSec);
                        }
                    );
                }
                else if (remainingSec <= 3 * 60)
                {
                    Dispatcher.Invoke(
                        () =>
                        {
                            if (!this._isShowMinuteWin)
                            {
                                this._isShowMinuteWin = true;
                                this._messageWinMinute = new MessageWinMinute();
                                this._messageWinMinute.Show();
                                this._messageWinMinute.SetSec(remainingSec);
                            }
                            this._messageWinMinute?.SetSec(remainingSec);
                        }
                    );
                }

                // 可以根据需要选择适当的时间间隔,这里选择1秒
                Thread.Sleep(1000);
            }
            Dispatcher.Invoke(this.CloseAction);
        }
    ).Start();
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简单示例
  • 项目示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档