【问题标题】:How do I measure time between clicks?如何衡量点击之间的时间?
【发布时间】:2021-12-12 02:52:40
【问题描述】:

我一直在为自己制作一个小项目,试图测量两次点击之间的时间。稍后我会将其更改为按键,但我可以自己完成。我需要以毫秒为单位测量时间,而我知道的唯一方法是使用计时器......

    bool clicked = true;
    int time = 0;

    private void button1_Click(object sender, EventArgs e)
    {
        if (clicked)
        {
            timer1.Start();
            clicked = false;
        }
        else
        {
            timer1.Stop();
            clicked = true;
        }
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        time += 10;
        label1.Text = Convert.ToString(time);
    }

计时器设置为 10 个滴答的间隔,为了直观地看到我还让计时器显示时间。但是当我测试它时,我添加了另一个间隔为 1000 滴答的计时器,由此我看到了差异。后来我意识到计时器不准确。我开始挖掘,唯一被推荐​​的是秒表,我尝试了这个......

    private void button1_Click(object sender, EventArgs e)
    {
        var timer = new Stopwatch();

        if (clicked)
        {
            timer.Start();
            clicked = false;
        }
        else
        {
            timer.Stop();
            TimeSpan timeTaken = timer.Elapsed;
            label1.Text = timeTaken.ToString();
            clicked = true;
        }
    }

但是每次都会返回“00:00:00”的结果。我该怎么办?

【问题讨论】:

  • var timer = new Stopwatch(); 这是方法本地声明的。尝试将其移至表单级别。
  • 试试Stopwatch();函数。

标签: c# timer stopwatch milliseconds


【解决方案1】:

我认为您不需要计时器,您只需要计算第一次点击(将它发生在dtPreviousClick 变量中的日期和时间)和第二次点击之间经过的时间。 2 个DateTime 对象之间的区别是Timespan 对象具有名为TotalMilliseconds 的属性,这是您要查找的值。

参考:https://docs.microsoft.com/en-us/dotnet/api/system.timespan.totalmilliseconds

bool clicked = false;
DateTime dtPreviousClick;

private void button1_Click(object sender, EventArgs e)
{
  if (!clicked)
  {
    dtPreviousClick = DateTime.UtcNow;
    clicked = true;
    label1.Text = "awaiting another click....";
    
  }
  else
  {
    label1.Text = (DateTime.UtcNow - dtPreviousClick).TotalMilliseconds.ToString();
    clicked = false;
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    • 1970-01-01
    • 2011-07-09
    相关资源
    最近更新 更多