Измерение времени между нажатием кнопки 1 и нажатием кнопки 2 - PullRequest
0 голосов
/ 24 ноября 2018

Мне нужно измерить время между нажатием кнопки 1 и нажатием кнопки 2.Я знаю, что могу использовать Datetime.Now, но любую переменную, которую я назначаю, я могу использовать только в одном обработчике событий.Я искал в интернете, но все, что я мог найти, это использовать секундомер, но в Visual Studio 2017 это больше не работает.

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

Вы можете использовать экземпляр секундомера или вычисление DateTime.Если вы хотите использовать секундомер, вам также нужно импортировать содержащее пространство имен.

using System.Diagnostics;

В любом случае, вы должны поместить свою переменную в область над обработчиками событий, чтобы оба обработчика событий имели к ней доступ.Вот пример Winforms, который использует оба метода, но его можно легко перевести на другие сценарии.

using System;
using System.Diagnostics;
using System.Windows.Forms;

namespace WindowsFormsApp1 {
    public partial class Form1 : Form {
        private DateTime from;
        private Stopwatch watch = new Stopwatch();

        public Form1() {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e) {
            from = DateTime.Now;
            watch.Restart();
        }

        private void button2_Click(object sender, EventArgs e) {
            watch.Stop();
            MessageBox.Show(
                "Date subtraction: " + DateTime.Now.Subtract(from).ToString() + Environment.NewLine +
                "Stopwatch: " + watch.Elapsed.ToString());

        }
    }
}
0 голосов
/ 24 ноября 2018

Использование Stopwatch

Stopwatch _sw = new Stopwatch();

void Button1_Click(sender, e)
{
    if (_sw.IsRunning) 
        _sw.Stop();
    _sw.Reset();
    _sw.Start();
}


void Button2_Click(sender, e)
{
    if (_sw.IsRunning)   
        _sw.Stop();
    MessageBox.Show(_sw.Elapsed);
}

Если вы в веб-формах, вы можете вставить свой секундомер в Session.А в REST вы можете использовать кэширование во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...