Время расчета истекло для десяти пользователей одновременно

Мне нужно, чтобы зафиксировать время между нажатием двух кнопок десяти пользователей.
Я делаю так с 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 связан с пользователем.

Другие вопросы по тегам