C# 每秒点击一个按钮
我想获得按钮的每秒点击次数,并将其保存在C# 每秒点击一个按钮,c#,wpf,C#,Wpf,我想获得按钮的每秒点击次数,并将其保存在\u clicksPerSecond中 我已经得到了用户的点击次数: private void button_Click(object sender, RoutedEventArgs e) { _klicks++; } 因此,如果我点击按钮,点击计数器将上升一,该值将保存在Highscore.txt文件中: writeHighscore = _klicks + Environment.NewLine; File.WriteAllText(Path.C
\u clicksPerSecond
中
我已经得到了用户的点击次数:
private void button_Click(object sender, RoutedEventArgs e)
{
_klicks++;
}
因此,如果我点击按钮,点击计数器将上升一,该值将保存在Highscore.txt
文件中:
writeHighscore = _klicks + Environment.NewLine;
File.WriteAllText(Path.Combine(savePath, "Highscore.txt"), writeHighscore);
我需要的是计算用户在一秒钟内做了多少次\u klicks
。但我不知道如何计算时间,如何计算时间的值。目前,我只得到用户一直制作的\u klicks
我正在为此使用WPF项目。您可以使用计时器,每1000毫秒检查一次_klicks的值,将其保存在文件中并将其设置回0
void main(){
timer = new Timer();
timer.Interval = 1000; // 1000 miliseconds = 1 second
timer.Tick += new EventHandler(timer_Tick);
timer.Enabled = true;
}
void timer_Tick(object sender, EventArgs e)
{
// Do what you need
var clicks = _klicks;
// method to save clicks to the file
_klicks = 0;
return clicks;
}
如果您不需要记录单击发生的时间,那么可以使用注释中的建议。如果您想要平均值,您应该保存平均单击时间段的开始时间,以便可以从结束时间中减去它(可能是
DateTime.Now
)
然后,您可以计算平均值,如下所示:
clicksPerSecond = _klicks / (_startTime - _endTime).TotalSeconds
这是因为DateTime减法运算符返回时间跨度。保存开始时间和结束时间。这就是DateTime的诀窍。现在?@bamanow如何用它获得一秒钟?因此,如果用户单击按钮,我将调用DateTime。现在,将时间保存在一个变量中,然后在一秒钟后再次调用它,也保存该按钮,并查看在何处进行了多少次单击?如果这就是诀窍,它比我想象的要容易,o.OYou需要一些列表变量。也许:列出你的点击次数;然后单击lstClicks.Add(DateTime.Now)添加到它。lstClicks.Count将是按钮被单击的次数。对于每秒的点击次数来说,这真的是一个简单的数学问题。值得注意的是,计时器只能保证事件不会在比指定时间更短的时间内触发,但实际间隔可能更长。指定的间隔越短,其他进程、线程、系统滴答时间间隔等的影响就越明显。。。延迟事件代码的执行。