Лучший способ в C # остановить функцию в середине - это ключевое слово return
в функции, но как узнать, когда использовать ключевое слово return
, чтобы остановить функцию в середине, после того, как она длится не менее 3 секунд?Stopwatch
класс из System.Diagnostics
является ответом.Эта сложная функция, которая длится от 2 секунд до 5 минут (в зависимости от входных данных), логически использует много циклов и, возможно, даже рекурсию, поэтому мое решение для вас заключается в том, чтобы в первой строке кода этой функции создать экземпляр Stopwatch
используя System.Diagnostics
с ключевым словом new
, запустите его, вызвав функцию Start()
класса Stopwatch, и в начале каждого цикла и цикла добавьте следующий код:
if (stopwatch.ElapsedMilliseconds >= 3000) {
stopwatch.Stop();
// or
stopwatch.Reset();
return;
}
(совет: вы можете набрать его руками, скопировать Ctrl + C, а затем просто вставить Ctrl + V).Если эта функция использует рекурсию, для экономии памяти создайте глобальный экземпляр секундомера вместо того, чтобы сначала создавать его как локальный экземпляр, и запустите его, если он не запускается в начале кода.Вы можете узнать это с помощью IsRunning
класса Секундомер.После этого спросите, прошло ли более 3 секунд, и если да (true
), остановите или сбросьте секундомер, и используйте ключевое слово return
, чтобы остановить цикл рекурсии, очень хороший старт в функции, если ваша функция работает долгоВремя в основном за счет рекурсии больше, чем зацикливание.Что это.Как видите, это очень просто, и я протестировал это решение, и результаты показали, что оно работает!Попробуйте сами!