Вы должны войти, чтобы создавать сообщения и темы.

Попытка разобраться с Telegram ботом

Всем доброго времени! В C# я не силён, когда-то давно пытался изучать по урокам Хачатура, в итоге сделал то, что мне надо было и забросил. Сейчас появилась нужда написать не большого ТГ бота, но что-то совсем разобраться не получается...
Смысл бота в следующем:
1. При получении сообщения "старт" бот запускается и ждёт от меня список который содержит (в данный момент просто ":").
2. Далее, при получении того самого ":", бот должен перейти в метод, который должен обработать список и выполняться каждые 5 секунд. То ли таймер нужен, то ли цикл, даже не знаю как тут правильно быть...
3. При получении сообщения "стоп", бот соответственно должен перестать обрабатывать этот список через каждые 5 секунд.
Что у меня в данный момент: бот заходит в цикл в котором есть метод, но после этого он перестаёт слушать все сообщения входящие, ну и соответственно ни какой реакции на команду "стоп" я не могу добиться... Плюс я не правильно использую CancellationToken, тоже не пойму как с ним работать.
P.S. Пробовал несколько вариантов, перечислять их пока не буду, всё равно не работали у меня, потому что делал их наверняка не правильно ))

Код

using Telegram.Bot;
using Telegram.Bot.Types;

namespace Telega
{
    internal class Program
    {
        static string _token = "12345";
        static ITelegramBotClient _client;
        static CancellationTokenSource _cts = new CancellationTokenSource();

        static void Main(string[] args)
        {
            try
            {
                _client = new TelegramBotClient(_token);
                _client.StartReceiving(Update, Error, cancellationToken: _cts.Token);

                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                Console.ReadLine();
            }
        }


        async static Task Update(ITelegramBotClient botClient, Update update, CancellationToken myToken)
        {
            try
            {
                var message = update.Message;

                if (message.Text != null)
                {
                    if (message.Text.ToLower().Contains("старт"))
                    {
                        await _client.SendTextMessageAsync(message.Chat.Id, "Бот запущен...");

                        int num = 1;

                        while (!_cts.Token.IsCancellationRequested)
                        {
                            message = (await _client.GetUpdatesAsync(update.Id + 1)).FirstOrDefault()?.Message;

                            if (message != null)
                            {
                                if (message.Text.Contains(":"))
                                {
                                    _ = Test.Iteration(num);

                                    await Task.Delay(500);
                                }
                            }
                            num++;

                            await Task.Delay(5000);
                        }

                        if (message.Text.ToLower().Contains("стоп"))
                        {
                            Console.WriteLine("Бот остановлен");
                            await botClient.SendTextMessageAsync(message.Chat.Id, "Бот остановлен");
                            _cts.Cancel();
                            return;
                        }
                    }
                }
            }

            catch (Exception e)
            {
                Console.WriteLine(e);
                Console.ReadLine();
            }
        }
        private static Task Error(ITelegramBotClient botClient, Exception exception, CancellationToken token)
        {
            throw new NotImplementedException();
        }
    }
}

 

Тему можно закрывать.