private void tapButtonClick(object sender, RoutedEventArgs e) { long elapsed = Stopwatch.ElapsedMilliseconds; Task.Run(() => recalculateBeat()); TickCounts.Add(elapsed); }
private void resetButtonClick(object sender, RoutedEventArgs e) { TickCounts.Clear(); if (!string.IsNullOrEmpty(InputBox.Text)) { Period = 60000 / double.Parse(InputBox.Text); InputBox.Text = null; updateLabel(); } }
private void recalculateBeat() { if (TickCounts.Count > 1) { var last30 = TickCounts.Reverse <long>().Take(30).ToArray(); var differences = new long[last30.Count() - 1]; for (int i = 1; i < last30.Count(); i++) { differences[i - 1] = last30[i - 1] - last30[i]; } Period = (differences.Average()); } }