c # Вызывать метод каждые x секунд, но только определенное количество раз - PullRequest
0 голосов
/ 23 октября 2019

Я собираюсь вызывать один и тот же метод каждые x секунд в моем консольном приложении c #, но я также хочу вызывать этот метод только определенное количество раз (скажем, 5). Мне нужно, чтобы каждый метод запускался один за другим (нельзя, чтобы они перекрывали друг друга). Моя самая большая проблема - закрытие консольного приложения до его завершения.

Текущий код, который у меня работает, работает довольно грязно (цикл while)

static void Main(string[] args)
        {
            for (int t = 0; t < 3; t++)
            {
                InitTimer(t);
            }
        }

        public static void InitTimer(int t)
        {
            Console.WriteLine("Init" + t);
            int x = 0;
            var timer = new System.Threading.Timer(
            e => x = MyMethod(x),
            null,
            TimeSpan.Zero,
            //delay between seconds
            TimeSpan.FromSeconds(5));
            //number of times called
            while (x < 5)
            {
            }
            timer.Dispose();
        }
        public static int MyMethod(int x)
        {
            Console.WriteLine("Test" + x);
            //call post method
            x += 1;
            return x;
        }
    }

Есть ли более удобный способ создать такую ​​же функциональность?

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