Время расчета истекло для десяти пользователей одновременно
Мне нужно, чтобы зафиксировать время между нажатием двух кнопок десяти пользователей.
Я делаю так с StopWatch
,
Stopwatch stopwatch1;
Stopwatch stopwatch2;
........ Вот так десять секундомеров.
private void Start_Action1()
{
stopwatch1 = new Stopwatch();
stopwatch1.Start();
}
private void Stop_Action1()
{
stopwatch1.Stop();
txtTimeForAction1.Text = stopwatch.Elapsed.ToString();
}
Тот же код для 10 секундомеров.
ПРИМЕЧАНИЕ. Все пользователи будут выполнять это действие START-STOP постоянно. Мне нужно записать прошедшее время для каждого цикла отдельно. Я использую в настольном приложении. Все пользователи будут использовать одно и то же приложение.
Используя 10 Stopwatch
это хорошая практика? Есть ли лучший способ, чем этот?
3 ответа
Лично я бы дал каждому "пользователю" DateTime (StartTime), а затем, когда событие закончилось (например, Key_Up), вы можете получить истекшее время с помощью:
DateTime elapsedTime = DateTime.Now - StartTime.
затем используйте elapsedTime.Seconds или.Minutes и т. д. и даже используйте elpasedTime.ToString("чч: мм: сс"), чтобы получить красиво отформатированную строку.
Вы можете отслеживать время запуска для каждого пользователя, использовать один секундомер и не останавливать его после вызова действия остановки одним пользователем, только когда все они остановлены. Я не знаю, лучше ли это практиковать, но это другой способ сделать это.
Я не вижу причин, почему бы не использовать секундомеры. Но вместо определения десяти секундомеров вы должны сохранить их в массиве или в словаре, где каждый StopWatch
связан с пользователем.