@Dima_Demichev

C# Почему игнорит проверку?

Создаю "бота", который меняет название беседы. Но на сервере у него срывает крышу и проверку он как будто не проходит, получается, что он меняет название много раз на одно и то же. А когда запускаю проект в Visual Studio, то все нормально, и название меняется когда оно не проходит проверку. Часть кода ниже.

Повторяется каждые 2 секунды для "цикличности" бота.
TimerCallback a = new TimerCallback(Bot);
Timer timer = new Timer(a, 0, 0, 2000);


Код:
protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RouteConfig.RegisterRoutes(RouteTable.Routes);

            // устанавливаем метод обратного вызова
            TimerCallback tm = new TimerCallback(Bot);
            // создаем таймер
            Timer timer = new Timer(tm, 0, 0, 2000);
        }

        public static void Bot(object obj)
        {
            string url = "https://api.vk.com/method/messages.getChat?access_token=TOKEN&chat_id=1";

            WebClient webClient = new WebClient();
            var response = webClient.DownloadString(url);
            var json = Encoding.UTF8.GetString(Encoding.GetEncoding(1251).GetBytes(response));
            JObject j = JObject.Parse(json);

            string title = (string)j["response"]["title"];
            int users = j["response"]["users"].Count();

            string name = "Тест, нас " + users;

            if (title != name)
            {
                url = "https://api.vk.com/method/messages.editChat?access_token=TOKEN&chat_id=1&title=" + name;
                webClient = new WebClient();
                response = webClient.DownloadString(url);
            }
        }

Соответственно title - Текущее название. name - новое название.

с while(true) такая же проблема.
  • Вопрос задан
  • 316 просмотров
Пригласить эксперта
Ответы на вопрос 1
@John_Nash
coder
Лучше Thread.Start() использовать. Таймеры часто не срабатывают по непонятным причинам.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы