计时器滴答错误数值

GabourX

我正在Windows Phone 8 SDK中开发游戏,我需要一个倒数计时器。

我第一次实现了Dispatcher计时器,请点击CLICK计时器减少且没有错误!

但是,如果我按RESET(应该将其重置为60秒并开始倒数),它将重置为60每秒减少“ 2秒”!

如果我再按一次RESET,它每秒减少3秒

我以与我的应用相同的想法编写的示例代码:(以及相同的错误结果)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using PhoneApp3.Resources;
using System.Windows.Threading;

namespace PhoneApp3
{
    public partial class MainPage : PhoneApplicationPage
    {
        private DispatcherTimer time = new DispatcherTimer(); // DISPATCHER TIMER
        private int left;

        // Constructor
        public MainPage()
        {
            InitializeComponent();
        }

        //Starting Countdown
        private void Start_Click_1(object sender, RoutedEventArgs e)
        {
            left = 60; // time left
            time.Interval = TimeSpan.FromSeconds(1);
            time.Tick += time_Tick;
            time.Start();
        }

        void time_Tick(object sender, EventArgs e)
        {
            left--; // decrease 
            txt.Text = Convert.ToString(left);  // update text           
        }

        private void reset_Click(object sender, RoutedEventArgs e)
        {
            time.Stop(); 
            Start_Click_1(null, null); // RE - START 
        }


    }
}
格兰特·温尼

每次按reset并Start_Click_1再次运行时,您都在time_Tick再次订阅

time.Tick += time_Tick;

因此,在按下Reset 3次后,您被订阅3次,并且每次tick事件触发时,下面的代码行均运行3次:

left--;

将订阅移到构造函数中:

public MainPage()
{
    InitializeComponent();

    time.Tick += time_Tick;
}

//Starting Countdown
private void Start_Click_1(object sender, RoutedEventArgs e)
{
    left = 60; // time left
    time.Interval = TimeSpan.FromSeconds(1);
    time.Start();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更改计时器滴答事件的参数

来自分类Dev

计时器滴答事件未触发

来自分类Dev

如何停止计时器滴答

来自分类Dev

计时器滴答声增加

来自分类Dev

更改计时器滴答事件的参数

来自分类Dev

计时器滴答事件未触发

来自分类Dev

如何从计时器获取滴答数

来自分类Dev

websocket计时器滴答后升压asio短读错误

来自分类Dev

尝试基于计时器滴答事件打开表单时出现线程错误

来自分类Dev

计时器滴答事件中的动态按钮单击事件

来自分类Dev

计时器阵列滴答事件还是合适的替代方法?

来自分类Dev

SMP中的系统滴答计时器中断

来自分类Dev

如何降低winforms计时器的滴答率?

来自分类Dev

嵌套计时器?多个同时的计时器滴答声中的逻辑故障

来自分类Dev

100 毫秒计时器,我希望每个计时器滴答返回 0 或 1

来自分类Dev

在错误的登录之间设置计时器

来自分类Dev

倒数计时器未设置错误

来自分类Dev

致命异常计时器0错误

来自分类Dev

Unity中的计时器错误

来自分类Dev

计时器功能的错误处理

来自分类Dev

倒数计时器未设置错误

来自分类Dev

Unity中的计时器错误

来自分类Dev

Xcode Swift 3计时器错误

来自分类Dev

在计时器滴答作响之后,如何在Java中更改标签文本?

来自分类Dev

面板没有隐藏在aspx页面的计时器滴答事件中

来自分类Dev

计时器似乎没有滴答声(直到我最小化窗口)

来自分类Dev

1滴答后,ASP.Net(语言C#)中的计时器停止

来自分类Dev

完全消除了现代Linux> = 5.0中的计时器滴答

来自分类Dev

在AWS SWF工作流中安排的计时器能否无法传递滴答声?