Функция, работающая только 10 раз в минуту c# [требует правки]

232
19 января 2018, 21:44

Функция вызывается, если в консоль пишешь test Если много раз писать это слово, то будет флуд, надо чтобы функцию можно было вызывать 10 раз в минуту

Answer 1

Запомните отметку времени, а при следующем вызове проверяйте ее:

var sw = new Stopwatch(); // Секундомер
sw.Start();
// Переменная для хранения метки времени
var prevStamp = sw.ElapsedMilliseconds;
while (true)
{
    var c = Console.ReadLine();
    if (c == "test")
    {
        // Если прошло менее 6 с (6000 мс) - пропускаем
        if (sw.ElapsedMilliseconds - prevStamp < 6000) continue;
        // Иначе - выполняем метод
        Test();
        // И сохраняем новую отметку времени
        prevStamp = sw.ElapsedMilliseconds;
    }
}
Answer 2

Создайте переменную счётчик, которая будет увеличиваться каждый раз, когда пользователь вводит test. Если переменная больше или равна 10, тогда не вызывайте вашу функцию. На C# особо не писал, может можно лучше сделать, но смысл такой:

public class Program
    {
        public static int testCount = 0;
        public static void printTest1()
        {
            Console.WriteLine("test1");
        }
        public static void Main(string[] args)
        {
            Timer myTimer = new Timer();
            myTimer.Elapsed += (sender, arguments) => testCount = 0;
            myTimer.Interval = 60000;
            myTimer.Start();
            if (Console.ReadLine() == "test")
                testCount++;
            if (testCount < 10)
                printTest1();
        }
    }
READ ALSO
Автоматический Deploy через Remote Debugger VS17

Автоматический Deploy через Remote Debugger VS17

Как настроить remote debugger на visual studio 2017 так, чтобы при сборке на компьютере приложения новый файлы отправлялись на компьютер, на котором ведется...

243
Помощь с Split С#

Помощь с Split С#

ЗдравствуйтеУ меня есть длинная строка, в которой есть переходы на новую строку, вопросительные, восклицательные знаки, точки

190
c#. System.Windows.Forms.WebBrowser и код текста для IFrame

c#. System.Windows.Forms.WebBrowser и код текста для IFrame

Использую стандартный SystemWindows

330
Недоступны элементы для создания формы

Недоступны элементы для создания формы

Почему не могу использовать стандартные элементы в visual studio? Подскажите как решить данную проблему пожалуйста

200