Могу ли я использовать какое-то время для контроля времени, как это? - PullRequest
0 голосов
/ 26 октября 2019

Мне нужен таймер для чтения данных с консоли в течение определенного времени. Я думал, что это правильно, но, похоже, нет. Некоторая помощь, пожалуйста?

while ((DateTime.Now - initTime).Seconds <= limitTime)
{
    Console.ReadLine();
}

Ответы [ 2 ]

1 голос
/ 26 октября 2019

Вы можете попробовать это:

var timeLimit = new TimeSpan(0, 0, 15); // 15 sec
var dateStart = DateTime.Now;
var inputs = new List<string>();

while ( DateTime.Now - dateStart <= timeLimit )
  inputs.Add(Console.ReadLine());

Мы используем TimeSpan, чтобы установить допустимое время.

И так как вычитание двух дат равно TimeSpan, мы сравниваемэто до разрешенного времени при добавлении входных строк в список.

Список добавлен для примера, и вы можете управлять входами в цикле или вне цикла.

0 голосов
/ 27 октября 2019

Я понял, вот функция, если кому-то это нужно. Спасибо Оливеру за помощь!

 public static List<string> answerRange(byte maxTime)
        {
            TimeSpan maxT = new TimeSpan(0, 0, maxTime);
            DateTime initTime = DateTime.Now;
            List<string> userAnswers = new List<string>();
            while ((DateTime.Now - initTime) <= maxT)
            {
                if (Console.KeyAvailable)
                {
                    ConsoleKey key = Console.ReadKey().Key;
                    if (key == ConsoleKey.Enter)
                    {
                        break;
                    }
                    else
                    {
                        userAnswers.Add(key.ToString());
                    }

                }
            }


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